Dans le monde non géré, j'ai pu écrire un __declspec (dllexport) ou, alternativement, utiliser un fichier .DEF pour exposer une fonction pour pouvoir appeler une DLL. (En raison du nom mangling en C++ pour le __stdcall, j'ai mis des alias dans le fichier .DEF afin que certaines applications puissent réutiliser certaines fonctions DLL exportées.) Maintenant, je suis intéressé à pouvoir exposer une seule fonction d'entrée d'un Assembly .NET, de manière non gérée, mais il doit entrer dans les fonctions de style .NET dans la DLL. Est-ce possible, d'une manière simple et directe?Comment puis-je appeler des DLL C++/CLI (.NET) à partir d'applications non-standard non-gérées?
Ce que j'ai est un programme tiers que j'ai étendu via des DLL (plugins) qui implémentent des mathématiques complexes. Cependant, le programme tiers n'a aucun moyen pour visualiser les calculs. Je veux en quelque sorte prendre ces fonctions mathématiques pré-écrites, les compiler dans une DLL séparée (mais en utilisant C++/CLI dans .NET), mais ensuite ajouter des crochets aux fonctions afin que je puisse rendre ce qui se passe sous le capot dans un .NET contrôle de l'utilisateur. Je ne sais pas comment combiner les éléments .NET avec les éléments non gérés, ou ce que Google doit accomplir pour accomplir cette tâche.
Des suggestions spécifiques concernant le pont géré/non géré, ou d'autres méthodes pour accomplir le rendu de la manière que j'ai décrite seraient utiles. Je vous remercie.
Je voulais utiliser C++/CLI parce que la bibliothèque tiers compilerait automatiquement en utilisant simplement l'option/clr. Ensuite, ajouter des liens vers le framework .NET rendrait la vie bien meilleure (je pense.) Votre exemple semble être une approche raisonnable. Je vous remercie. – user343400
Je ne suis pas sûr de vous suivre ici. Lorsque vous prenez mon modèle de projet, il se compilera automatiquement (il créera même un fichier .lib). Sauf si je vous ai mal compris, et que vous voulez réellement utiliser C++/CLI. –