[英]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.