Как я могу добавить VC ++ DLL в качестве ссылки в моем проекте C # Visual Studio? - PullRequest
4 голосов
/ 20 марта 2009

Я хочу добавить ссылку на библиотеку VC ++ DLL в мой проект C # Visual Studio. Но когда я пытаюсь добавить его, я вижу: «Это недопустимая сборка или компонент COM».

Пожалуйста, предложите, как я могу использовать VC ++ DLL в качестве ссылки в проекте C #.

Ответы [ 3 ]

1 голос
/ 20 марта 2009

Существует два варианта использования C ++ DLL из C #: либо COM-взаимодействие, либо P / Invoke. COM Interop включает создание COM-объекта в вашей C ++ DLL, а затем добавление его в качестве ссылки. Вы можете использовать объект COM как объект C # (по большей части) на данный момент.

P / Invoke позволяет вам вызывать экспортированные функции из C # (например, вызывая стандартные функции Win32 API из C #). Это, вероятно, проще в настройке, поскольку все, что вам нужно сделать, это экспортировать функцию, однако это может привести к рефакторингу вашего кода в C ++ DLL, поскольку это не очень ООП-способ.

1 голос
/ 20 марта 2009

Вы можете использовать компоненты C ++ в C # только тогда, когда они подготовлены к использованию, например, написаны на C ++ / CLI или написаны как COM-сервер.

Если ваш компонент представляет собой простой C ++ dll, вам нужно написать некоторый код-обертку, вероятно, лучше всего это C ++ / Cli

0 голосов
/ 20 марта 2009

Я не уверен, что это решить ..

пробег:

tlbimp /out:MyOldCom.dll MyNewAssembly.tlb

Затем используйте его как любую другую сборку.

Пожалуйста, обратитесь

http://msdn.microsoft.com/en-us/library/aa302324.aspx

http://msdn.microsoft.com/en-us/magazine/cc301501.aspx

т)

Один из способов - упаковать вашу DLL в класс COM, а другой - использовать DllImport

...