如题,狂晕,那位仁兄帮我看看,不知如何处理
代码如下:
function TSnapPanel.SnapExCallback(var info: SNAP_INFO): Integer; stdcall;
begin
result := 1;
end;function TSnapPanel.StarSnap(iType: Integer; lpFunc : Pointer): Boolean;
var
status: CGSTATUS;
kk : EProc;
begin
Result := false;
if not bInit then Exit;
status := CGOpenSnapEx(hCGCard,@SnapExCallback, nil);???
if (CG_SUCCESS(status)) then
begin
status := CGStartSnapEx(hCGCard, 0, True, 2);
if ( not CG_SUCCESS(status)) then
CGCloseSnapEx(hCGCard)
else
bSnap := True;
end;
end;
CGOpenSnapEx的原型如下:
原 型:CGSTATUS __stdcall CGOpenSnapEx(HCG hcg,SNAPPROC
pSnapFunc,void *pParam)
参 数:HCG hcg;
图像卡句柄。
SNAPPROC pSnapFunc;
指向回调函数。
void *pParam;
指向用户定义参数,参数对应于回调函数参数SNAP_
INFO的字段pParam,它是传递给回调函数的。
代码如下:
function TSnapPanel.SnapExCallback(var info: SNAP_INFO): Integer; stdcall;
begin
result := 1;
end;function TSnapPanel.StarSnap(iType: Integer; lpFunc : Pointer): Boolean;
var
status: CGSTATUS;
kk : EProc;
begin
Result := false;
if not bInit then Exit;
status := CGOpenSnapEx(hCGCard,@SnapExCallback, nil);???
if (CG_SUCCESS(status)) then
begin
status := CGStartSnapEx(hCGCard, 0, True, 2);
if ( not CG_SUCCESS(status)) then
CGCloseSnapEx(hCGCard)
else
bSnap := True;
end;
end;
CGOpenSnapEx的原型如下:
原 型:CGSTATUS __stdcall CGOpenSnapEx(HCG hcg,SNAPPROC
pSnapFunc,void *pParam)
参 数:HCG hcg;
图像卡句柄。
SNAPPROC pSnapFunc;
指向回调函数。
void *pParam;
指向用户定义参数,参数对应于回调函数参数SNAP_
INFO的字段pParam,它是传递给回调函数的。
...
FWndProcInstance := MakeObjectInstance(SnapExCallback);
问题是你的
function TSnapPanel.SnapExCallback(var info: SNAP_INFO): Integer; stdcall;和要求的
原 型:CGSTATUS __stdcall CGOpenSnapEx(HCG hcg,SNAPPROC
pSnapFunc,void *pParam)根本不同,传进去,会出错的