非託管的.dll我想換一個託管C++動態鏈接庫會談到視頻採集卡在C++/CLI,所以我可以從我有一個C#項目中引用的功能。由於我是C++/cli語法的新手,因此無法使第一次打包的調用工作。這是我的。傳遞一個HANDLE變量在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();
}
}
當我編譯這與所需的頭,我得到這個錯誤:
error C2664:
'AZ_DeviceCreate'
: cannot convert parameter 1 from'HANDLE'
to'HANDLE &'
誰能幫助我,因爲我知道這是一個愚蠢的語法,我做錯了。
在此先感謝。
哇,這是一個巨大的幫助!感謝您的幫助。這真的讓我可以說話了。再一次,謝謝! – 2011-05-12 14:49:32