CS文件:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Runtime.InteropServices; namespace AJAXEnabledWebApplication1.CSClasss
{
//[StructLayout(LayoutKind.Sequential)]
public struct analogue
{
byte A_sta; //站号
int A_id; //序号
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 40)]
char[] A_name; //名称
long A_address; //物理地址
float A_factor; //系数
float A_bottom; //底数
byte A_clc; //
byte A_flag; //越限标志 float A_up_yj; //越上限预警值
float A_up_yj_jc; //解除越上限预警值
float A_up_bj; //越上限报警值
float A_up_bj_jc; //解除越上限报警值 float A_down_yj; //越下限预警值
float A_down_yj_jc; //解除越下限预警值
float A_down_bj; //越下限报警值
float A_down_bj_jc; //解除越下限报警值
float A_value; //数值
}
public unsafe class DataDll
{
[DllImport("DataDLL.dll")]
public static extern IntPtr LoadAnaMem(int nIndex);
public static unsafe analogue test()
{
analogue sData;
sData = (analogue)Marshal.PtrToStructure(LoadAnaMem(470020), typeof(analogue));
//pAna.A_flag = 1;
sData.A_name = "zhxingway";
return sData;
}
}
}编译时报错:错误 2 “AJAXEnabledWebApplication1.CSClasss.analogue.A_name”不可访问,因为它受保护级别限制 F:\WEB\Visual Studio 2005\Projects\ZedGraph\AJAXEnabledWebApplication1\CSClass\DataDll.cs 50 19 AJAXEnabledWebApplication1请各位朋友帮忙解决,谢谢.
解决方案 »
- vs2008怎么无法连接SQL SERVER 2008了?
- 日期控件Calendar的问题
- 老生常谈的confirm!~
- checkbox选中后 ”确定“ 提交至access的问题!急~~~先谢了~
- IE Developer ToolBar 装在IE7下,不显示DOM树呢。重装了IE7 也重装了IE Developer ToolBar个。都还是没有个
- 前台怎么绑定后台属性
- 求<<ASP.NET项目开发实践>>,中国铁道出版社这本书带光盘中的源程序!
- 动态赋值的问题
- 至少一个参数没有被指定值的错误
- WebService+Token口令认证
- 谁能帮我把这个过程编译成asp.net。。就一个过程。。
- 连本机数据库在web.config,如何连异机的oracle呢?
public struct analogue
{
public:
byte A_sta; //站号
int A_id; //序号
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 40)]
char[] A_name; //名称
long A_address; //物理地址
float A_factor; //系数
float A_bottom; //底数
byte A_clc; //
byte A_flag; //越限标志 float A_up_yj; //越上限预警值
float A_up_yj_jc; //解除越上限预警值
float A_up_bj; //越上限报警值
float A_up_bj_jc; //解除越上限报警值 float A_down_yj; //越下限预警值
float A_down_yj_jc; //解除越下限预警值
float A_down_bj; //越下限报警值
float A_down_bj_jc; //解除越下限报警值
float A_value; //数值
}
public char[] A_name;
要改为
sData.A_name = "zhxingway".ToCharArray();
---------------
public char[] A_name;
可能public string A_name;更好点
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct analogue //遥测数据
{
public byte A_sta; //站号
public int A_id; //序号
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 40)]
public byte[] A_name; //名称 原来是Char的
public int A_address; //物理地址
public float A_factor; //系数
public float A_bottom; //底数
public byte A_clc; //
public byte A_flag; //越限标志 public float A_up_yj; //越上限预警值
public float A_up_yj_jc; //解除越上限预警值
public float A_up_bj; //越上限报警值
public float A_up_bj_jc; //解除越上限报警值 public float A_down_yj; //越下限预警值
public float A_down_yj_jc; //解除越下限预警值
public float A_down_bj; //越下限报警值
public float A_down_bj_jc; //解除越下限报警值
public float A_value; //数值
}
public static void Main(string[] args)
{
DataInfo info;
info.i = 5;
Console.WriteLine(info.i);
Console.ReadLine();
} public struct DataInfo
{
public int i;
}
试了一下,public可以解决