我有一个 .h 文件的第 3 方集合以及随附的 .lib 文件。我正在使用 C++/CLI 包装器包装这些本机 C++ 文件,并从 C# 进行最终调用。当我调用期望传递引用的方法时,我遇到了一个问题,除非我明确更改它,否则我的包装器中的值不会更改。
我的 C++/CLI 包装器代码当前如下所示:
bool get_testInt16(int16% testInt16)
{
int16* t = static_cast<int16*>(GCHandle::ToIntPtr(GCHandle::Alloc(testInt16)).ToPointer());
bool b = m_NativeCMTY_TestData->get_testInt16(*t);
testInt16 = *t;
return b;
};
相应的本机 C++ 代码如下所示:
bool get_testInt16(int16 &testInt16);
我认为必须有更好的方法,但也许不是?让我说我希望有更好的方法!