Я пытаюсь обернуть неуправляемую dll c ++, которая общается с картой захвата видео в c ++ / CLI, чтобы я мог ссылаться на функции из проекта c #, который у меня есть. У меня возникают проблемы с выполнением первого обернутого вызова, поскольку я новичок в синтаксисе c ++ / cli. вот что у меня есть.
вот функция declataion, которую я пытаюсь обернуть.
__declspec(dllimport) BOOL AZ_DeviceCreate(HANDLE& hLiveEvent, DWORD* hEncoderEvent, DWORD* pdwEncoderAddress, HANDLE& hAudioEvent, DWORD& dwAudioAddress);
вот мой файл c ++ / cli .h
namespace CaptureLibrary
{
public ref class CaptureCard
{
public:
HANDLE m_hLiveEvent;
DWORD *m_hEncoderEvent;
HANDLE m_hAudioEvent;
public:
CaptureCard();
bool CreateDevice();
void DisposeDevice();
};
}
и мой .cpp
namespace CaptureLibrary
{
CaptureCard::CaptureCard()
{
m_hLiveEvent = INVALID_HANDLE_VALUE;
m_hEncoderEvent = new DWORD[MAX_VIDEO_CHANNEL];
for (BYTE i=0;i<MAX_VIDEO_CHANNEL;i++)
{
m_hEncoderEvent[i] = (DWORD)INVALID_HANDLE_VALUE;
}
m_hAudioEvent = INVALID_HANDLE_VALUE;
}
bool CaptureCard::CreateDevice()
{
DWORD dwEncoderBuff[MAX_VIDEO_CHANNEL];
DWORD dwACaptureBuffer = 0;
if(AZ_DeviceCreate(m_hLiveEvent, m_hEncoderEvent, dwEncoderBuff, m_hAudioEvent, dwACaptureBuffer)==FALSE)
{
return false;
}
return true;
}
void CaptureCard::DisposeDevice()
{
AZ_DeviceClose();
}
}
когда я компилирую это с необходимыми заголовками, я получаю эту ошибку:
ошибка C2664: 'AZ_DeviceCreate'
: невозможно преобразовать параметр 1 из 'HANDLE'
в 'HANDLE &'
Может ли кто-нибудь помочь мне, поскольку я знаю, что это глупый синтаксис, который я делаю неправильно.
Заранее спасибо.