Инструмент для импорта C ++ DLL - PullRequest
2 голосов
/ 10 марта 2010

Моя компания использует стороннюю C ++ DLL, которая периодически обновляется. Я вручную создавал операторы C # DLLImport, но в этом последнем обновлении число функций почти удвоилось. Есть ли какой-либо инструмент (желательно бесплатный), который создаст C # DLLImport из неуправляемого C ++ .dll или .lib файла? (DLL экспортирует оформленные функции C ++, а не класс C ++).

Ответы [ 3 ]

2 голосов
/ 10 марта 2010

Microsoft Managed, Native и COM Interop Team предоставляет некоторые инструменты для Codeplex, среди которых инструмент под названием

P / Invoke Interop Assistant

Я сам не пробовал, но похоже, что он может делать то, что вы ищете.

0 голосов
/ 10 марта 2010

Насколько я знаю, такого инструмента не существует. Вы должны написать декларацию P / Invoke для каждой функции самостоятельно. Я думаю, что это так же хорошо, так как функции C ++ обычно полны тонкостей, включая контекст ввода / вывода, строки в стиле c, массивы в стиле c, указатели, ссылки и тому подобное. Много раз ожидаемый ввод / вывод может быть выражен только документацией, и инструмент не может вывести правильные объявления маршалинга для функций.

0 голосов
/ 10 марта 2010

Я бы написал оболочку C ++ / CLI.

...