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)
为什么提示  尝试写入受保护的内存

解决方案 »

  1.   

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

  2.   

    最安全的方式是C++导出C接口,C++的类型过于复杂了
      

  3.   

    那是要怎么弄,是在开发C++DLL的时候做还是在调用DLL的时候
      

  4.   

    再编写个 C++ dll ,字符串使用 C 类型的,函数内部转 CString ,再调用 OneUser_Comm
      

  5.   

    CString 是mfc的类吧,没法在P/Invoke中使用。要用char* 或者unsigned char*什么的。
      

  6.   

    这里是DataType的映射:
    Platform Invoke Data Types
    http://msdn.microsoft.com/en-us/library/ac7ay120.aspx