Проблема с добавлением ссылки на 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.