Ошибка получения при попытке создать COM-порт без регистрации - PullRequest
0 голосов
/ 20 июня 2020

Я пытаюсь создать COM-компонент без регистрации на C ++. Когда я пытаюсь создать файл манифеста, он не создается с информацией о зависимой сборке. В настоящее время мы регистрируем и используем компонент в приложении C#.

Мы импортировали зависимые файлы в заголовок проекта, как показано ниже:

#import "c:\A\aaa.dll"
#import "c:\A\bbb.dll"
#import "c:\A\ccc.dll"

Я попытался добавить зависимости в качестве дополнительных зависимости, но это не сработало. Я получаю сообщение об ошибке «класс не зарегистрирован», если указываю зависимости, как показано ниже. Если я удалю их, класс будет инициализирован, но при попытке доступа к методу я получаю сообщение об ошибке «нарушение прав доступа».

Я добавил информацию об имени импортированного файла в дополнительные зависимости манифеста в Linker-> ManifestFile и дал Генерировать манифест «Да»

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="asInvoker" uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="Win32" name="aaa.dll" version="1.0.0.0" />
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="Win32" name="bbb.dll" version="1.0.0.0" />
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="Win32" name="ccc.dll" version="1.0.0.0" />
    </dependentAssembly>
  </dependency>
</assembly>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...