C#调用C++的dll存在的问题
2017-09-26 16:23
204 查看
C#调用C++写的DLL时,在C#程序中,使用DllImport定义C++导出函数的定义信息,之前在C++中定义导出函数时,使用了long作为参数类型,使用C#调用时,开始在64位版本是哪个测试,一切正常,可使用32位环境调试时,怎么都不对,不论怎么调整DllImport的属性设置都不正确,上网查也没查到什么有效的信息,正当想放弃是,在调试中发现本来是第二个参数的值,在第三个参数中出现,第二个参数和第三个参数都是字符串指针,突然想起long在C++程序中32位环境是32位长,64位环境是64位长,而C#的long长度固定为64位长,这正好导致在32位环境下,C#的64位long的传递到C++中,只取了32位,后32位当成了第二个参数的指针,导致参数传递不正确了,将long改成short,一切正确了。
特意记录一下,避免以后遇到同样的问题。
特意记录一下,避免以后遇到同样的问题。
相关文章推荐
- C#调用C++的DLL各种问题
- C#调用C++下Win32DLL,找不到入口问题,感谢TallMan
- C#调用C++dll 结构体参数传递问题
- C#调用使用C++\CLI封装的标准C++ DLL问题:无法访问受保护的内存,这通常指示其他内存已损坏
- C#调用C++dll 结构体参数传递问题
- C# 调用C++ dll问题总结一 ——无法找到dll
- C# 调用 C++ 写的Dll 遇到的问题(调用DLL 自动退出) win32已停止工作
- 在c#里调用C++的dll时,需要注意的一些问题
- C# 调用 C++ dll 函数 时传递字符串 需要注意的问题(zz)
- C#调用C++生成的Dll调试异常的问题
- 关于c#调用c++dll问题
- C#调用C++Dll封装时遇到的一系列问题【转】
- c#调用c++开发的dll const char* 返回值接收问题
- C#调用C++Dll封装时遇到的一系列问题
- C#调用C++ dll或C dll问题
- C# 调用 C++ 写的Dll 遇到的问题(调用DLL 自动退出)
- C#调用C++Dll封装时遇到的一系列问题
- 在c#里调用C++的dll时,需要注意的一些问题
- C#中调用C++dll错误问题
- C#调用C++Dll封装时遇到的一系列问题 参考