我正在創建一個依賴於衆多C++靜態庫的C++/CLI包裝器DLL。一些函數調用需要傳入非託管指針。我如何正確傳遞它們?在C++/CLI中傳遞非託管指針
此外,其他函數期望「this pointer」作爲void *傳入。什麼是通過「這個」的正確途徑?
這裏是我的類定義...
public ref class RTPClient
{
public:
RTPClient();
~RTPClient();
bool Connect();
void Disconnect();
private:
CIsmaClient* mClient;
};
這裏是我的使用,其中有問題的指針被用來...
RTPClient::RTPClient():
mClient(NULL)
{
CIsmaClient::Create(&mClient, NULL, &AllocBuffer, &GetDataPointer, this);
}
&和移動客戶端的使用「此「導致以下編譯器錯誤... 1>。\ VBLoadSimulatorDll.cpp(40):錯誤C2664:'CIs maClient ::創建」:不能從轉換參數1 'CLI :: interior_ptr' 到 'CIsmaClient **' 1>使用 1> [ 1>類型= CIsmaClient * 1>]
1> \。 VBLoadSimulatorDll.cpp(40):錯誤C2664:'CIsmaClient :: Create':無法將參數5從'VBLoadSimulator :: RTPClient^const'轉換爲'VOID *'
這裏是正確的鏈接: http://msdn.microsoft.com/en-us/library/1dz8byfh.aspx – 2009-02-20 14:39:03
的指針是,雖然非受管類... – cjserio 2009-02-20 14:44:49