非托管的.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