Я получаю исключение при попытке передать неуправляемый объект методу COM в методе, написанном в управляемом классе C ++ / CLI. Ниже приведен пример кода
//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. Я думаю, это потому, что я пытаюсь выделить неуправляемую память в управляемой функции. Но я не уверен, как обойти это.