Je crée une DLL encapsuleur C++/CLI qui dépend de nombreuses bibliothèques statiques C++. Certains appels de fonctions attendent que des pointeurs non gérés soient transmis. Comment les transmettre correctement?Passage de pointeurs non gérés en C++/CLI
En outre, d'autres fonctions attendent qu'un "ce pointeur" soit passé en tant que vide *. Quelle est la bonne façon de passer "ceci"?
Voici ma définition de la classe ...
public ref class RTPClient
{
public:
RTPClient();
~RTPClient();
bool Connect();
void Disconnect();
private:
CIsmaClient* mClient;
};
Voici mon utilisation où les pointeurs en question sont utilisés ...
RTPClient::RTPClient():
mClient(NULL)
{
CIsmaClient::Create(&mClient, NULL, &AllocBuffer, &GetDataPointer, this);
}
L'utilisation de & mClient et " cela "provoque les erreurs de compilation suivantes ... 1>. \ VBLoadSimulatorDll.cpp (40): erreur C2664: 'CIs maClient :: Créer »: ne peut pas convertir le paramètre 1 de 'cli :: interior_ptr' à 'CIsmaClient **' 1> avec 1> [1 > Type = CIsmaClient * 1>]
1> \. VBLoadSimulatorDll.cpp (40): erreur C2664: 'CIsmaClient :: Create': impossible de convertir le paramètre 5 de 'VBLoadSimulator :: RTPClient^const' à 'VOID *'
Voici le lien correct: http://msdn.microsoft.com/en-us/library/1dz8byfh.aspx –
le pointeur est à une classe non géré si ... – cjserio
si elle est non géré alors simplement passant une plaine seulement C + + pointeur est très bien. Je ne vois pas quel est le problème .... – ShuggyCoUk