在C#中调用C++的DLL碰到的指针内容变化问题
2014-03-14 14:44
218 查看
在C#中调用C++的DLL碰到了蹊跷的问题,C++暴露如下接口:
void func(StructA* a)
该函数的参数为一个结构体指针。在C#代码中调用该函数,C++中得到该指针,这里的值是正确的,然后将该指针赋予C++代码中的一个结构体指针变量,后面再取该变量时,结构体中的一个变量总是错误的值,其他值都是对的。经过分析认为原因可能是该指针变量的值在C#环境中被改动了,解决方案为在C++中得到该指针后对其做深拷贝,后面使用深拷贝后的指针,该问题就消失了。
阅读更多相关文章推荐
- C#调用c++Dll 结构体数组指针的问题
- c#调用API 和c++dll的参数问题
- C#调用使用C++\CLI封装的标准C++ DLL问题:无法访问受保护的内存,这通常指示其他内存已损坏
- C#调用C++版本dll时的类型转换需要注意的问题小结
- C# 调用 C++ dll 函数 时传递字符串 需要注意的问题
- C#调用C++版本dll时的类型转换需要注意的问题小结
- C#中调用C++的dll的参数为指针类型的导出函数(包括二级指针的情况)
- C#中调用C++的dll的参数为指针类型的导出函数
- c# 调用 研华库函数中 C++ 非托管 Dll 一例(包含指针成员的结构体的调用)
- 关于C#中调用C++dll传递回调函数的问题
- C#调用C++编写的COM DLL封装库的问题解决方案
- 用C#调用C++DLL时的字符串指针参数传递问题
- C# 调用 c++ dll 的一些问题总结
- C#调用C++Dll封装时遇到的一系列问题(2)
- C#调用C++Dll封装时遇到的一系列问题
- C#调用C++版本dll时的类型转换要注意的问题
- 在c#里调用C++的dll时,需要注意的一些问题
- C#调用C++Dll封装时遇到的一系列问题
- 关于C#中调用C++dll传递回调函数的问题
- [C#开发手记] C# 调用C++ dll 注意的问题