句柄的问题

fbwt 2006-04-24 12:49:24
在VC的DLL中有一个函数,DSF_Proxy_SetEncrypt(DWORD nStrategyCookie,HWND hParentWnd,BYTE pBuf[CS_BUFFER_LENGTH],DWORD nLength);
但是我要在delphi中使用
我在delphi中的定义如下:
function DSF_Proxy_SetDecrypt(nStrategyCookie:Longint;hParentWnd:THandle;pBuf:PByte;nLength:Longint):Longint;stdcall;

现在vc的dll是不可修改的,但是我要调用DSF_Proxy_SetDecrypt,并且hParentWnd要为空,

请问,我在delphi中调用这个函数时,如何给句柄空直,或者说,这VC的DLL中的函数,在Delphi中如何的调用!
...全文
152 7 点赞 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
fbwt 2006-04-25
少了stdcall!:)
  • 打赏
  • 举报
回复
老之 2006-04-24
句柄为0就相当于空值了
  • 打赏
  • 举报
回复
fbwt 2006-04-24
在VC中的调用是这样的!

DWORD nDefaultStrategyCookie=DSF_Strategy_GetKernelDefault();
BYTE pBuf[8192];
memset(pBuf,0,8192);
strcpy((char*)pBuf,"123456");//配置是一个密码串:"123456"
DSF_Proxy_SetEncrypt(nDefaultStrategyCookie,NULL,pBuf,7) //实际上pBuf有效的就只有7个字节

--------------------------------------------------------------------------------------------------

我的定义是
function DSF_Proxy_SetEncrypt(nStrategyCookie:Longint;hParentWnd:THandle;pBuf:PByte;nLength:Longint):Longint;stdcall;

调用时
sPass:array [0..8191] of byte;
psPass:PByte;
nDefaultStrategyCookie:Longint;

nDefaultStrategyCookie:=DSF_Strategy_GetKernelDefault;
psPass:=@sPass;
DSF_Proxy_SetEncrypt(nDefaultStrategyCookie,0,@sPass,6);//实际上pBuf有效的就只有7个字节,所以可以只分配7字节空间的,但我们还是按照接口要求分配了8192字节;

但是运行到这一行出现非法错误!

  • 打赏
  • 举报
回复
柯本 2006-04-24
这样试试:
procedure DSF_Proxy_SetEncrypt(nStrategyCookie:dword;hParentWnd:thandle;pBuf:pbyte;nLength:dword);stdcall;external 'testdll.dll';
var
a:array [0..10] of byte;
...
DSF_Proxy_SetEncrypt(0,0,@a,5);
  • 打赏
  • 举报
回复
柯本 2006-04-24
你的delphi调用上应该没问题,重新查一下你的VC定义,看看它是否含有stdcall,如果没有,delphi要定义成
function DSF_Proxy_SetEncrypt(nStrategyCookie:Longint;hParentWnd:THandle;pBuf:PByte;nLength:Longint):Longint;cdecl;external 'test.dll';
另外,不知你用静态还是动态调用.动态时要检查函数指针是否得到
  • 打赏
  • 举报
回复
slzzg 2006-04-24
BYTE pBuf[CS_BUFFER_LENGTH], 应该是定义一个指针数组

pBuf:PByte, 应该只是定义指向指向Byte的指针的。

函数定义错误。
  • 打赏
  • 举报
回复
fbwt 2006-04-24
我调用时是这样的
DSF_Proxy_SetEncrypt(nDefaultStrategyCookie,0,psPass,7);但出现了非法操作
  • 打赏
  • 举报
回复
相关推荐
发帖
语言基础/算法/系统设计
加入

1.6w+

社区成员

Delphi 语言基础/算法/系统设计
申请成为版主
帖子事件
创建了帖子
2006-04-24 12:49
社区公告
暂无公告