日期:2014-05-18  浏览次数:20755 次

C#调用C++动态库时参数类型这样转换对吗?
C++接口是:int OneUser_Comm(int ie,int ma,unsigned long ID,CString Content)
这样调有问题吗?
[Dllimport("XXX.dll")]
int OneUser_Comm(int ie,int ma,ulong ID,string Content)
为什么提示 尝试写入受保护的内存


------解决方案--------------------
CString 类型,貌似不能直接调用
------解决方案--------------------
探讨
引用:

CString 类型,貌似不能直接调用


那怎么用,还要怎么转换吗?

------解决方案--------------------
CString 是mfc的类吧,没法在P/Invoke中使用。

要用char* 或者unsigned char*什么的。
------解决方案--------------------
这里是DataType的映射:
Platform Invoke Data Types
http://msdn.microsoft.com/en-us/library/ac7ay120.aspx