Я пытаюсь создать 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>