У меня есть DLL, для которой мне нужно написать оболочку.Цель состоит в том, чтобы использовать его в приложении C # .NET, поэтому мне нужно использовать C ++ / CLI (никогда раньше об этом не читал, поэтому я новичок в этом).
Заголовок функции в dllследующее:
extern "C" __declspec(dllexport) BOOL __stdcall PlayM4_GetPort(LONG* nPort);
Заголовок, который я определил в моей обёртке, выглядит так:
bool PlayM4Wrapper::GetPort(long^ nPort);
Из того, что я понял, знак циркунфлекса (^) означает, что этоуказатель на аргумент (nPort
).Поэтому я пытаюсь написать следующий код, но получаю ошибку преобразования Error C2664 'BOOL (LONG *)': el argumento 1 no puede convertirse de 'System::Int32 ^' a 'LONG *'
.
bool PlayM4Wrapper::GetPort(long^ nPort)
{
BOOL ret =_mLoader->m_PlayM4GetPort(nPort);
return static_cast<BOOL>(ret);
}
Может кто-нибудь помочь мне с этим?Как мне написать эту функцию-обертку?
Спасибо.