Exportation méthode de type non géré dans la signature lors de l'assemblage en mode mixte

StackOverflow https://stackoverflow.com/questions/5377648

  •  28-10-2019
  •  | 
  •  

Question

J'ai un mode mixte assemblage, construit avec l'option /clr. Je suis en train d'exporter une classe de celui-ci, pour la consommation par un autre mode mixte assemblage, également construit avec l'option /clr.

Mon problème est que la signature de la méthode contient un mélange de types gérés et non gérés. Par exemple:

static System::String ^Convert( const CString from );

Dans un premier temps, j'essayé d'utiliser __declspec(dllexport) la classe non-ref application de la présente. Cette erreur a échoué avec C3395: __declspec (dllexport) ne peut pas être appliquée à une fonction de la convention d'appel __clrcall , sans doute, à cause du type géré dans la signature. Mon prochain enregistrement était de faire la classe A à la place classe ref. Maintenant, le montage et réflecteur builds affiche la méthode exportée comme ceci:

public static unsafe string Convert(CStringT<wchar_t,ATL::StrTraitATL<wchar_t,ATL::ChTraitsCRT<wchar_t> > > modopt(IsConst) modreq(IsCopyConstructed)* from);

Cependant, dans l'assemblage client, je ne pouvoir faire référence à la méthode exportée ...

CString atlString("test");
AtlCStringConverter::Convert( atlString );

... donne l'erreur C2039: 'Convert': n'est pas membre de 'XXX :: AtlCStringConverter' . J'ai vérifié des erreurs évidentes comme le mélange de différents types char qui pourraient faire en sorte que la signature de ne pas être adapté.

Je me rends compte que ni de ces tentatives d'exportation sont vraiment casher en ce qu'un mélange de types gérés / non gérés sont exposés côte à côte dans la signature, mais étant donné que ce mélange de gestion / non géré est bien dans les un ensemble en mode mixte, je me demandais s'il n'y a aucun moyen de types d'exportation en utilisant ce mélange de types dans la signature entre les DLL en mode mixte?

Était-ce utile?
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top