Управляемая DLL в родном приложении VC ++ 6 - PullRequest
0 голосов
/ 13 августа 2011

У меня есть управляемая DLL, которую я хочу использовать в унаследованном приложении, которое я изменяю, поэтому шаги, которые я предпринял, в значительной степени следуют этому руководству по T: Как вызвать управляемую DLL из собственного кода Visual C ++ в Visual Studio.NET или в Visual Studio 2005

Итак, я создал строгое имя для DLL, сгенерировал файл .tlb, #import его в свой код C ++, заметьте, что, о, круто, intellisense может даже видеть классы (и указатели на классы), когда я ' Я вызываю его, но после компиляции получаю ошибку компоновщика:

Test.tlb : fatal error LNK1136:  invalid or corrupt file.

Возможно, мой C ++ проект настроен неправильно, изначально я получал "fatal error LNK1181: Cannot open input file 'Test.tlb' ", пока не переместил его в каталог, содержащий мое решение / проект.

Кто-нибудь знает, что может быть причиной этого?

1 Ответ

1 голос
/ 13 августа 2011

Да, ваш проект настроен неправильно. Похоже, вы добавили файл .tlb в настройку дополнительных зависимостей компоновщика. Это не правильно, он не содержит никакого связанного кода. Он содержит только объявления в формате, понятном только директиве #import.

Удалите test.tlb из настроек компоновщика.

...