Création automatique de C# enveloppes de c-têtes?

Est-il un moyen de créer automatiquement des p/invoke des wrappers pour .net à partir d'un en-tête c?

Bien sûr, je pourrais créer à la main, mais leur maintien serait douloureux, et je serais probablement faire une erreur quelque part résultant en difficile à déboguer se bloque.

J'ai essayé de GORGÉE, mais il a créé plein de classes dont les structures seraient suffisantes.
Un autre problème avec SWIG est qu'il nécessite plus d'interopérabilité de code sur le côté c.

Je préfère si la sortie a travaillé sur mono aussi, mais qui n'est pas nécessaire.

Une autre chose que j'ai pu travailler avec est un programme qui analyse l'en-tête c, et crée une sortie dans un joli format intermédiaire comme xml, à partir de laquelle je peux créer le C# wrapper moi-même.

Edit:

PInvoke Interop Assistant est ce dont j'avais besoin.

Il y a quelques petits problèmes avec elle si:

* Il se traduit par "unsigned char*" à la chaîne où je préfère IntPtr

* Il suppose que size_t=int=long=32 bits. C'est actuellement le cas pour moi, mais ne pourrait pas vrai sur chaque plate-forme.

Est-il propre moyen de corriger ça? Sinon, je vais utiliser un peu de trouver et de remplacer dans le code c avant de le convertir.

InformationsquelleAutor Winner | 2010-03-25