【发布时间】:2015-11-19 23:12:27
【问题描述】:
我有一个用于非托管 C 库的托管 C++ 包装类。我遇到了一个问题,我从托管 C++ 类发送的指针似乎没有指向非托管 C 代码库方法使用的相同内存位置。
MyNonManagedType* dataPointer;
getDataFromNonmanagedCLibrary(dataPointer);
// this gives me junk data, where field should be a char array
String^ myFieldValue = gcnew String(dataPointer->field);
是否有可能 dataPointer 没有指向 C 库使用的相同地址?或者也许我需要为此使用某种元帅方法,或者我可能会遗漏其他陷阱?
【问题讨论】:
-
指针
dataPointer未初始化。getDataFromNonmanagedCLibrary可以用它做什么,除了检查它是否为 NULL?它当然不能初始化它,因为它是按值传递的。
标签: c++ .net c managed-c++