Как я могу импортировать файл COM .tlb в файл C ++ с относительным путем? - PullRequest
0 голосов
/ 20 июня 2019

У меня есть COM-файл .tlb, и я хочу импортировать его в мой c ++ проект без использования абсолютного пути к tlb-файлу. Как я могу это сделать?

Я использую Visual Studio, и есть несколько проектов на C # и C ++. Один из моих C # проектов регистрирует COM-объект и генерирует файл .tlb. После этого я хочу использовать этот файл с другим проектом C ++. Поэтому я попытался импортировать его. С абсолютным путем (расположение файла .tlb - это выходной каталог моего решения) работает правильно (1), и я также могу использовать относительный путь (2), но я хочу использовать для импорта (3). Основная причина этого очень проста: я хочу избежать использования пути отладки или выпуска в моем коде. Я нашел решение для этого (4), но когда я пытаюсь построить свое решение (например, в режиме выпуска), он также хочет прочитать файл отладки, и я думаю, что это не лучшее решение (Прежде всего, я должен построить мой проект COM C # в Debug и Release, и после этого я смогу построить все мое решение). Итак, мой вопрос в том, какая опция проекта C ++ влияет на #import? Я попытался установить для директорий VC ++ -> каталогов библиотеки значение $ (SolutionDir) $ (платформа) \ $ (конфигурация) \, но это не сработало. Заранее спасибо за помощь!

(1) #import "C: \ MyProjects \ Project \ x64 \ Release \ myfile.tlb или же #import "C: \ MyProjects \ Project \ x64 \ Debug \ myfile.tlb

(2) #import ".. \ x64 \ Release \ myfile.tlb" или же #import ".. \ x64 \ Debug \ myfile.tlb"

(3) #import "myfile.tlb"

(4) #ifdef RELEASE #import ".. \ x64 \ Release \ myfile.tlb" #else #import ".. \ x64 \ Debug \ myfile.tlb" # ENDIF

Когда я пытаюсь использовать #import "myfile.tlb" со следующей опцией: Каталоги VC ++ -> Каталоги библиотек в $ (SolutionDir) $ (платформа) \ $ (конфигурация) \

1 Ответ

0 голосов
/ 20 июня 2019

Может быть, путь к этому файлу .tlb («C: \ MyProjects \ Project \ x64 \ Release \ myfile.tlb») НЕ добавляется в $ (SolutionDir) $ (платформа) \ $ (конфигурация) \ '.

Пожалуйста, проверьте значение '$ (SolutionDir) $ (Platform) \ $ (Configuration) \' и добавьте в него путь к вашему файлу .tlb, что поможет Visual Studio найти файл .tlb. ИЛИ, возможно, скопируйте файл .tlb в один из каталогов, который уже находится в $ (SolutionDir) $ (платформа) \ $ (конфигурация) \ '

Еще одно предложение: также проверьте, правильно ли зарегистрирован .tlb.

надеюсь, это поможет !!

...