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 *'

questionAnswers(2)

yourAnswerToTheQuestion