J'ai un code hérité implémenté en C (pas C++). Je voudrais être en mesure d'appeler quelques méthodes dans ce code C à partir de mon code C# (sur Windows). Quelle serait la meilleure approche pour l'interface entre les deux langues? Veuillez noter que la méthode en C n'est pas apatride. Nous devons appeler deux méthodes:parler à C à partir de C#
- initialisation() => ceci initialise la structure de données et charge les données des fichiers dans la mémoire. Cette méthode sera appelée une fois.
- ComputeQuelque chose (paramètres) => il y aura plusieurs appels de C# à cette méthode.
Note: Ces deux méthodes appellent en fait plusieurs autres méthodes, mais ce ne sont que les deux méthodes que nous voudrions exposer à C# (le code est assez compliqué, c'est la raison pour laquelle nous ne voulons pas au port à C#)
J'ai été en mesure d'importer le code c dans Visual Studio et capable de compiler le code avec succès. Je sais que nous pouvons probablement implémenter le code C en tant que service Windows mais je cherche une solution qui nous permette d'appeler directement la méthode C à partir de C#. Tout pointeur est très apprécié! (COM interop lié à ce que je cherche à faire?)
pourquoi ne pas mettre en œuvre vos méthodes sur C#? – Luiscencio
Quelle est la sortie compilée de votre code C? Si c'est un .dll et supporte COM, vous devriez simplement être en mesure de faire un "ajouter une référence" à partir de Visual Studio et parcourir le fichier dll. – Nate
Si vous ne l'avez pas déjà fait, encapsuler vos fonctions dans une classe COM et utiliser .NET/COM interop semble trop de travail/trop de travail. Je voudrais simplement mettre ces deux fonctions C dans une DLL et y accéder avec P/Invoke, comme suggéré par Jason Evans. – stakx