簡體   English   中英

在C ++ / CLI托管方法中將非托管對象引用傳遞給非托管方法

[英]Passing Unmanaged object reference to Unmanaged method in C++/CLI managed method

當我嘗試將非托管對象傳遞給以托管C ++ / CLI類編寫的方法中的COM方法時,出現異常。 以下是代碼示例

//C++/CLI class 
public ref class PSIAAdaptorManagedWrapper
{
    CConfiguration *Configuration;
    void InitializeConfig();    
}

//C++/CLI Method implementation 
void PSIAAdaptorManagedWrapper::InitializeConfig() {
    Configuration = new CConfiguration();
    Configuration->IPAddress = "127.0.0.1";
    Configuration->UserName = "User";
    Configuration->password = "password";    
    SomeComObject->GetInitiConfig((void *) Configuration);  // Exception line
}

//signature of COM object from IDL file (observer paramer it takes is in) 
[helpstring("method InitializeCameraConfig")]
HRESULT GetInitiConfig([in] void *configparam);

上面的代碼編譯良好。 但是執行時,我在網上看到“ System.AccessViolation”欠幅時間錯誤。 我認為這是因為,我試圖在托管函數中分配非托管內存。 但是我不確定該如何解決。

用戶名或密碼可能不正確。 對於這些問題,最好注意AccessViolation。 另外,我看不到為什么在上面的代碼中處理問題時會出現任何問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM