C#调用C++的DLL时 结构体参数问题 本帖最后由 qiuzhuoxian 于 2009-10-16 16:33:52 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50)] public string szDesc; 我现在已经都改成string了,而且也改成了[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 50)] 可是还是一样的数据库里还是没有东西怎么回事啊快点来帮忙呀 public int WriteLog(char * id,LOG * plog); 最后一参数要求指针,可以考虑用 marshal.StructureToPtr 转化一下 [StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Ansi)] public struct STLOGINFO { public byte byLogType; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 50)] public string szDesc; } [DllImport("CppDll.dll", EntryPoint = "WriteLog", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int WriteLog(string Id, ref STLOGINFO pstLogInfo);STLOGINFO log = new STLOGINFO(); log.byLogType = 12; log.szDesc = "hello,abcde"; WriteLog("12345", ref log); VS2012连接不了sql server 关于List.RemoveAll()问题 [求助]如此画线连接表格怎么实现 c#通过ESC/POS指令打印bmp图片 在windows服务中调用COM接口函数出错(怀疑是权限问题) 透明可拖动到控件怎么做? C#链接数据库 ActiveRecor 多表查询 如何把整个ini文件读成一个字符串? C#中调用C++的dll时bstr类型转换的问题 急用,在线等。。 textBox赋值null怎么么出现这样的怪现象?
public string szDesc;
数据库里还是没有东西
怎么回事啊
快点来帮忙呀
最后一参数要求指针,可以考虑用 marshal.StructureToPtr 转化一下
[StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Ansi)]
public struct STLOGINFO
{
public byte byLogType; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 50)]
public string szDesc;
} [DllImport("CppDll.dll", EntryPoint = "WriteLog", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
public static extern int WriteLog(string Id, ref STLOGINFO pstLogInfo);
STLOGINFO log = new STLOGINFO();
log.byLogType = 12;
log.szDesc = "hello,abcde";
WriteLog("12345", ref log);