Question

Je suis en train de créer un projet CLI pour enrouler un projet C ++ natif existant (deux projets distincts dans le même fichier de solution). Je voudrais inclure un pointeur vers une classe native en tant que membre dans une classe gérée. D'après la documentation que j'ai lue en ligne, cela peut être fait si le code géré et non géré sont ensemble dans le même projet. Si le code natif et géré est dans des projets distincts, la seule option consiste à utiliser DLLIMPORT et DLLEXPORT ENTRE LES deux projets et à exporter les fonctions de classe de code native comme fonctions statiques.

S'agit-il de mes seules options, ou puis-je importer et exporter une classe native entière entre deux projets distincts? Je demande parce que cela détermine comment je conçois mon emballage géré. Merci d'avance.

Était-ce utile?

La solution

Eh bien, le mot "pointeur" m'a jeté une minute. Vous voulez dire que vous souhaitez utiliser un code natif de votre code C ++ / CLI sans P / Invoke? Bien sûr. Il suffit d'inclure la tête, de lien à la lib. Exactement ce que vous feriez s'ils étaient tous les deux natifs. Ces jours-ci, cela s'appelle C ++ Interop - j'aime mieux l'ancien nom (cela fonctionne mieux).

Vous pouvez bien sûr inclure un en-tête de n'importe où et ajouter une entrée d'éditeur de liens de n'importe où, de sorte qu'ils n'ont techniquement pas besoin d'être dans le même .sln, mais Visual Studio vous facilitera la vie s'ils le sont.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top