Sto creando una DLL wrapper C++/CLI che dipende da numerose librerie statiche C++. Alcune delle chiamate alle funzioni prevedono l'invio di puntatori non gestiti. Come li passo correttamente?Passaggio di puntatori non gestiti in C++/CLI
Inoltre, altre funzioni prevedono che un "puntatore" venga passato come un vuoto *. Qual è il modo giusto per passare "questo"?
Ecco la mia definizione della classe ...
public ref class RTPClient
{
public:
RTPClient();
~RTPClient();
bool Connect();
void Disconnect();
private:
CIsmaClient* mClient;
};
Ecco il mio utilizzo in cui vengono utilizzati i puntatori in questione ...
RTPClient::RTPClient():
mClient(NULL)
{
CIsmaClient::Create(&mClient, NULL, &AllocBuffer, &GetDataPointer, this);
}
L'utilizzo di & mClient e " questo "causa i seguenti errori del compilatore ... 1>. \ VBLoadSimulatorDll.cpp (40): errore C2664: 'Elementi di configurazione maClient :: Create': non può convertire il parametro 1 da 'cli :: interior_ptr' a 'CIsmaClient **' 1> con 1> [ 1> Type = CIsmaClient * 1>]
1> \. VBLoadSimulatorDll.cpp (40): errore C2664: 'CIsmaClient :: Create': impossibile convertire il parametro 5 da 'VBLoadSimulator :: RTPClient^const' a 'VOID *'
Ecco il link corretto: http://msdn.microsoft.com/en-us/library/1dz8byfh.aspx –
il puntatore è quello di una classe non gestita però ... – cjserio
se è gestito poi semplicemente passando un piano solo C + + il puntatore va bene. Non vedo quale sia il problema .... – ShuggyCoUk