Передача ссылки на неуправляемый объект неуправляемому методу в управляемый метод C ++ / CLI - PullRequest
1 голос
/ 29 ноября 2010

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

1 Ответ

0 голосов
/ 29 января 2012

Возможно, имя пользователя или пароль неверны.AccessViolation лучше всего подходит для этих проблем.Кроме того, я не понимаю, почему что-то должно пойти не так, как вы обрабатываете вещи в своем коде выше.

...