C# 通过dllimport 调用C++ dll 有一个工具叫CLRInsideOut,用它可以将C++转换成对应的C#类型。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 u_int8_t version[4]; 改成 char public byte[] version; 改成string试试。有可能是定义的类型不对引起的。 试试,因为C#默认是WINAPI[DllImport("clib.dll",CallingConvention=CallingConvention.Cdecl)] 试试在你的c#结构体加上:[StructLayout(LayoutKind.Sequential)]调用改成:[DllImport("clib.dll", EntryPoint = "cl_init", CharSet = CharSet.Ansi)]还有不知道你的u_int8_t是否是:typedef unsigned char u_int8_t; 使用bigbaldy 的方法问题解决,附上CallingConvention枚举说明,http://msdn.microsoft.com/zh-cn/beginner/system.runtime.interopservices.callingconvention(VS.90).aspx 可能是因为cdecl方式是C/C++编译器默认的函数调用约定造成的,希望对后来人有用,结贴。 写了一个.net程序,运行时自动退出,也捕捉不到错误 关于Socket发送序列化类的一些问题! 高手快来,急~~ vs2005中,调用存储过程得不到返回值,但是在查询分析器中看到返回值 一个类如何得知是被哪个类哪个方法调用了? 信息导入中存在的问题,请高手帮忙! 写入数据库时出现的异常 请高手作答如何实现动态报表(含报表设计器) 如何在web端加入flash???? 求大神帮忙做个秒表计时器 菜鸟求教,看看是哪的问题 正则表达式如何排除一个字符串
public byte[] version; 改成string
试试。有可能是定义的类型不对引起的。
http://msdn.microsoft.com/zh-cn/beginner/system.runtime.interopservices.callingconvention(VS.90).aspx
可能是因为cdecl方式是C/C++编译器默认的函数调用约定造成的,希望对后来人有用,结贴。