以前のプロジェクトで問題なく動作したコードがあります。その一部は、動作中のデモ プロジェクトからコピーされたものでさえありますが、新しいプロジェクトでこのエラーがどのように発生するのかわかりません。コンパイルすると、次のエラーが発生します。
1>d:\visual studio 2012\netsdk_poc\mfc_netsdk2\mfc_netsdk2\netsdkfunctions.cpp(33): error C2440: 'type cast' : cannot convert from 'overloaded-function' to 'fDisConnect'
コード :
class CNetSDKFunctions{
void __stdcall DisConnectBackCallFunc(LONG lLoginID, char *pchDVRIP,
LONG nDVRPort, DWORD dwUser)
{
CNetSDKFunctions* pThis = (CNetSDKFunctions*)dwUser;
if (pThis == NULL)
{
ASSERT( FALSE );
return ;
}
//pThis->ReConnect(lLoginID, pchDVRIP, nDVRPort);
}
BOOL CNetSDKFunctions::InitSDK()
{
long m_PlayerHandle;
H264_DVR_GetLastError();
H264_DVR_Init(NULL, 0);
//Here it is :
BOOL logResult = H264_DVR_Init( (fDisConnect) DisConnectBackCallFunc, (DWORD) this );
....
}
そして fDisConnect 定義:
typedef void (CALL_METHOD *fDisConnect)(long lLoginID, char *pchDVRIP, long nDVRPort, unsigned long dwUser);