Использование cpp dll в проекте c # - PullRequest
0 голосов
/ 17 февраля 2011

У меня есть win32 cpp dll и проект ac # (PROJ_1), которые используют dllimport для вызова функций win32 dll.Эта dll включена в проект PROJ_1 и имеет действие сборки как копирование в выходной каталог.

Другой проект c # (PROJ_2) ссылается на PROJ_1 и PROJ_3 ссылки PROJ_2.

Итак, теперь у нас есть что-то вроде этого PROJ_3-> PROJ_2-> PROJ_1 (dll)

Итак, когда я делаю сборку в VS 2010: 1. В бине PROJ_1 у меня есть win32 dll.2. В бине PROJ_2 тоже 3. Но в PROJ_3 - нет win32 dll

В чем проблема и как ее решить?

Ответы [ 3 ]

1 голос
/ 17 февраля 2011

Если проекты находятся в одном решении VS, есть ли у вас правильно определенные зависимости между проектами (щелкните правой кнопкой мыши проект -> Зависимости проекта)?Все проекты построены для одной и той же целевой архитектуры (64/86)?

В качестве дополнительного вопроса - Вы рассматривали возможность написания оболочки C ++ / CLI?

0 голосов
/ 17 февраля 2011

Вы можете проверить свойство 'Copy Local' ссылки на PROJ_2. В PROJ_1 добавьте dll win32 в свое решение (без ссылки, просто добавьте его в виде файла, как класс в своем решении) и установите свойства Build Action = Content, Copy to Output Directory = Copy only.

0 голосов
/ 17 февраля 2011

Предлагаю добавить неуправляемую DLL в решение PROJ3 и в свойствах установить «Копировать в выходной каталог» в «Копировать всегда»

...