Моя компания использует стороннюю C++ DLL, которая периодически обновляется. Я вручную создавал операторы C# DLLImport, но в этом последнем обновлении количество функций почти удвоилось. Есть ли какой-нибудь инструмент (желательно бесплатный), который создаст C# DLLImport из неуправляемого файла C++ .dll или .lib? (DLL экспортирует оформленные C++-функции, а не C++-класс).Инструмент для импорта C++ DLL
ответ
от Microsoft Managed, Native, и COM Interop Team предоставляет некоторые инструменты на Codeplex, среди них инструмент под названием
Я не пробовал сам, но это выглядит как будто он может делать то, что вы ищете.
Я бы написал обертку C++/CLI.
. Это не так. Я знаю, что могу писать код, я хочу этого избежать. – user206645
Насколько я знаю, такого инструмента не существует. Вы должны написать декларацию P/Invoke для каждой функции самостоятельно. Я думаю, что это так же хорошо, так как функции C++ обычно полны тонкостей, включая контекст/out, строки c-style, c-style массивы, указатели, ссылки, а что нет. Многократно ожидаемый ввод/вывод может быть выражен только документацией, и инструмент не может выводить правильные объявления маршаллинга для функций.
Некоторая правда в этом, но все же такой инструмент, как P/Invoke Interop Assistant, может автоматически выполнять 90% преобразования, экономя ваши часы утомительной ошибки, подверженной тяжелой работе. – MarkJ
- 1. Инструмент для импорта типов библиотек как код C#
- 2. импорта C++ DLL для Windows Phone проекта
- 3. Delphi и C++, DLL импорта
- 4. Инструмент для импорта таблиц Excel
- 5. Matlab - инструмент для импорта данных
- 6. Инструмент импорта Excel CSV
- 7. Инструмент для импорта электронных таблиц Excel
- 8. Инструмент импорта Neo4j Hanging
- 9. C++ функции импорта из dll - моя dll не экспортирует lib
- 10. Создание dll для импорта данных MYSQL
- 11. Ошибка импорта модуля для пользовательской dll
- 12. Инструмент для перезаписи абсолютного импорта в относительный
- 13. Инструмент импорта/экспорта Firebird cli
- 14. Где разместить неуправляемую DLL для импорта в C#?
- 15. Как указать правильное маршалинг для импорта DLL в C#
- 16. Инструмент импорта Neo4j и запрос
- 17. Любой инструмент для обнаружения утечки памяти dll?
- 18. Инструмент командной строки для поиска зависимостей Dll
- 19. Невозможно вызвать запись импорта DLL, C# -> C++, EntryPointNotFoundException
- 20. C++ Неуправляемая библиотека DLL при сбое импорта среды C#
- 21. Повторное использование функций C++ путем импорта DLL в C#
- 22. GetProcAddress для импорта функции декорированного C++ в
- 23. Инструмент для загрузки/импорта WSDL-файлы для клиента JAX-WS
- 24. Каков правильный способ импорта DLL-функций?
- 25. Ошибка импорта dll pylab не удалась
- 26. Как программировать чтение встроенных DLL-импорта в C#?
- 27. Инструмент импорта PostgreSQL (RDF/JSON/CSV)
- 28. Инструмент стандартов кодирования C#
- 29. Какой инструмент может декомпилировать DLL в исходный код C++?
- 30. Инструмент для создания .NET-обертки для COM-библиотеки DLL?
Не для чего нужно: «Чтобы использовать инструмент, вы либо загружаете сборки MSIL, либо получаете исходный код C для правильных неуправляемых подписей или фида в источнике C с неуправляемой подписью и выбираете правильный VB/C#». – user206645
@ steve-weeks: Насколько я знаю, вам понадобятся источники C/C++, потому что родные DLL не хранят подпись экспортируемых функций (см. Http://stackoverflow.com/questions/386133/get-signatures- of-exported-functions-in-dll/386488 # 386488), и даже файл lib будет хранить подпись в определенном компиляторе. –
+1 divo @ Steve-weeks Предположительно, вы использовали заголовки C++ от третьего лица для создания операторов DLLImport? Просто поместите эти заголовки в помощник PInvoke, и он будет генерировать C# – MarkJ