0
看起來我在這裏犯了一個基本的錯誤。我有一個3方C++庫(test.dll),其中有一個API定義如下。我通過加載庫,獲取API和調用來調用這個APi。我是C++ CLI的新手,任何解決問題的指針都會有所幫助。提前致謝。C++/CLI如何將整數指針傳遞給C++ API
第三方庫導出API FUNCTION_EXPORT void STDCALL GetVersion(UINT16 & version); typedef void(STDCALL * GETVERSION)(UINT16);
我需要從C++ CLI調用它
頭文件
MyTest.h
namespace MyTest {
public ref class TestClass
{
public:
HMODULE module;
String^ version;
void TestMethod()
};
}
cpp文件
MyTest.cpp namespace MyTest { TestClass::TestMethod() { this->module = LoadLibrary(engineDllPath); if (!this->module) { return String::Format("LoadLibrary failed"); }; // Get engine version GETVERSION GetVersionApi = (GETVERSION)GetProcAddress(module, "GetVersion"); if (!GetVersionApi) { return; } UINT16 major; GetVersionApi(&uiMajor); } }
獲取編譯錯誤 錯誤C2664:'void(UINT16 &)':不能將參數1從'UINT16 *'轉換爲'UINT16 &'
代碼片段是給出一個想法,我正在嘗試。主要問題是這裏 UINT16主要; GetVersionApi(& uiMajor);
什麼是正確的調用方式。請幫忙。