Passing Ponteiros não gerenciados em C ++ / CLI
Estou criando uma DLL de wrapper C ++ / CLI que depende de várias bibliotecas estáticas de C ++. Algumas chamadas de função esperam que ponteiros não gerenciados sejam transmitidos. Como os transmito corretament
Além disso, outras funções esperam que um "este ponteiro" seja passado como um vazio *. Qual é o caminho certo para passar "isso"?
Aqui está a minha definição de classe ...
public ref class RTPClient
{
public:
RTPClient();
~RTPClient();
bool Connect();
void Disconnect();
private:
CIsmaClient* mClient;
};
Aqui está o meu uso em que os ponteiros em questão são usados ...
RTPClient::RTPClient():
mClient(NULL)
{
CIsmaClient::Create(&mClient, NULL, &AllocBuffer, &GetDataPointer, this);
}
O uso do & mClient e "this" causam os seguintes erros do compilador ... 1>. \ VBLoadSimulatorDll.cpp (40): erro C2664: 'CIsmaClient :: Create': não é possível converter o parâmetro 1 de 'cli :: interior_ptr' para 'CIsmaClient **' 1> com 1> [1> Type = CIsmaClient * 1>]
1>. \ VBLoadSimulatorDll.cpp (40): erro C2664: 'CIsmaClient :: Create': não é possível converter o parâmetro 5 de 'VBLoadSimulator :: RTPClient ^ const' para 'VOID *'