Попытка получить доступ к 32-битному SDK через com на 64-битной - PullRequest
0 голосов
/ 24 октября 2019

В контексте приложения я разрабатываю функциональность экспорта данных. Эта функция берет данные из приложения и пытается передать их в другое приложение.

Это другое приложение позволяет осуществлять обмен данными через 32-битный com-интерфейс. Теперь мое приложение получает сборки как в 32-битной, так и в 64-битной версии. В случае 32-битных проблем не возникает, однако, когда я собираю его в 64-битной версии ...

Я провел некоторое исследование по этому вопросу и нашел решение .

Я попробовал это, и это, казалось, работало ... до определенного момента ...

connnection = new ClSdk.Venice();

bsCreatedForVenVer = "11.50_";
_bsAppName = "MyApplication";
eLanguage = eLanguage.lngNld;
bWithUserInterface = true;
bsInitials = "XXX";
bsName = "Yzzzzzzzzzzzz";
bsPassword = "Yzzzzzzzzzzzz";
_bsFunction = "Uvvvvvvv Wxxxxxxx";
_bsCabinet = "Abbbb";
bsDossier = "Some Client";

accessMode = connnection.GetAccessMode();
if (accessMode == eAccessMode.amSecure)
{
    connnection.LogonSecure(bsCreatedForVenVer, _bsAppName, eLanguage, 
 bWithUserInterface, bsName, bsPassword);
}
else
{
    connnection.Logon(bsCreatedForVenVer, _bsAppName, eLanguage, bWithUserInterface, bsInitials, bsName, _bsFunction);
}

Когда я начинал, я получал исключение во второй раз, когда я пытался создать новый экземпляр ClSdk. Венецианский класс. После выполнения шагов, которые я обнаружил в публикации, создание экземпляра работало безупречно, но при переходе к части соединения (connnection.LogonSecure) было выдано новое исключение: 'errNoInterfaceAsService: интерфейс не разрешен, если выполняетсякак услуга. '

снимок экрана Visual Studio

Я пытался найти дополнительную информацию об этом исключении, но пока мойпоиски не дали ничего полезного.

У кого-нибудь здесь есть идеи, как решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...