Я использую библиотеку C, которая имеет функции обратного вызова, такие как:
int DownloadStream(LPCTSTR host,DWORD channelNumber,NewImage pNewImage);
typedef int (*NewImage)(BYTE *pData, int nLen,void *returnHandle);
В C я могу позвонить так:
int CallDownloadStream(LPCTSTR host,DWORD channelNumber)
{
int hr = DownloadStream(host,channelNumber,OnNewImage);
return hr;
}
int OnNewImage(BYTE *pData, int nLen,void *returnHandle)
{
// able to get data
}
То, что я хочу, это вызвать эти функции как члены класса C ++, такие как:
class MyClass
{
public:
int CallDownloadStream(LPCTSTR host,DWORD channelNumber)
{
int hr = DownloadStream(host,channelNumber,OnNewImag);
return hr;
}
int OnNewImage(BYTE *pData, int nLen,void *returnHandle)
{
// able to get data
}
}
Не могу скомпилировать. Можно ли использовать эти функции обратного вызова таким образом? Если да, то как это сделать?
PS: я не контролирую функции обратного вызова в стиле C.