Есть ли способ автоматически создавать оболочки p/invoke для .net из заголовка c?
Конечно, я мог бы создать их вручную, но поддерживать их было бы больно, и я, вероятно, допустил бы ошибку, из-за чего сложно было бы отлаживать сбои.
Я попробовал SWIG, но он создал полные классы, в которых достаточно простых структур. Еще одна проблема с SWIG заключается в том, что для этого требуется дополнительный код взаимодействия на стороне c.
Я бы предпочел, чтобы выход работал на моно, но это не обязательно.
Еще одна вещь, с которой я мог бы работать, - это программа, которая анализирует заголовок c и создает вывод в хорошем промежуточном формате, таком как xml, из которого я могу сам создать оболочку С#.
Edit:
PInvoke Interop Assistant - это то, что мне нужно.
Есть некоторые небольшие проблемы с ним:
* Он переводит "unsigned char *" в строку, где я бы предпочел IntPtr
* Предполагается, что size_t = int = long = 32bit. Это в настоящее время верно для меня, но может быть не верно на каждой платформе.
Есть ли чистый способ исправить это? Else Я буду использовать немного поиска и замены в коде c перед его преобразованием.