Einzelnen Beitrag anzeigen

Drag0n

Registriert seit: 15. Okt 2008
4 Beiträge
 
#1

Konvertierung c++ zu delphi

  Alt 16. Feb 2011, 14:43
Hallo zusammen

hab ein kleines problem bei dem einbinden einer usbcam.dll aus c++ in delphi.
Ich hoffe mir kann jemand helfen.

Code:
typedef int (WINAPI *SetCallback)(IN INT nCamIndex,IN INT nMode,IN LONG (CALLBACK *pCallbackFunc)(BYTE *pBuf, LONG lBufferSize, PVOID pContext),IN VOID *pCBContext);

typedef SetCallback PSetCallback;
das ganze in delphi
Delphi-Quellcode:
TCallback=function(pbuf:pbyte;lBufferSize:long;pContext:pointer):long;stdcall;
SetCallBack=function(nCamIndex,nMode:integer;pCallbackFunc:TCallback;pCBContext:pointer):Integer;stdcall;
die callbackfunction mit dem aufruf

Code:
long CALLBACK MyCallbackFunc(BYTE * pBuffer, long lBufferSize,PVOID pContext )
{
 //gibt image aus
}

nStat=SetCallback(0,1,MyCallbackFunc,NULL);
und das ganze in delphi:

Delphi-Quellcode:
function MyCallbackfunc(pBuffer:pbyte;lBufferSize:long;pContext:pointer):long;
begin
  //gibt image aus
end;

nstat:=SetCallback(0,1,@MyCallBackFunc,Nil);
das problem ist jetzt das in der Mycallbackfunc die parameter pBuffer und lBufferSize Nil bzw 0 sind die aber eigentlich den buffer von einem bild + den buffersize enthalten müsten.

Ich scheine da einen fehler in der Konvertierung zu haben.
Nach einigem nachlesen habe ich gefunden das die Callback funktion nicht in einer Klasse sein darf weil sonst der funktionspointer anders ist aber das hat nicht geholfen.

Ich hoffe jemand sieht oder kennt das problem.

Geändert von Drag0n (16. Feb 2011 um 14:46 Uhr)
  Mit Zitat antworten Zitat