Проблема с добавлением ссылки на C++ dll в проект C#

Я реализовал C++ DLL, которая успешно скомпилирована. Проект содержит заголовок и файл cpp. Файл cpp содержит несколько сторонних заголовков (в основном Cplex).

После создания библиотеки DLL я попытался ссылаться на библиотеку DLL в визуальной студии, и она не сработала. В консольном приложении я использовал tlbimp.exe и обнаружил сообщение об ошибке:

<AssemblyFileName.dll> is not a valid type library.

Затем я использовал обходчик зависимостей, и он показал сообщение об ошибке:

"MSVCR90.DLL was not found".

Я наверняка что-то упустил и был бы признателен, если бы вы могли указать, какое решение может быть?

2 ответа

Решение

Здесь есть две проблемы, одна из которых состоит в том, что не все нативные библиотеки также являются библиотеками типов, а только COM.

вторая ошибка больше похожа на то, что у вас нет доступной среды выполнения Visual C++. Собираете ли вы dll C++ на той же коробке, в которой пытаетесь ее использовать?

для не-COMN-библиотек вместо импорта библиотеки типов вы можете использовать подход DLLImport.

Если у вас нет Visual Studio 2008, вы получите ошибку MSVCR90.dll. Вы можете просто установить среду выполнения Visual Studio 2008, и тогда у вас не будет ошибок зависимости, связанных с MSVCR90.

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en

Другие вопросы по тегам