delphi中与VB“当前窗口指针”相当的是什么?(100分)

  • 主题发起人 主题发起人 shy_cm
  • 开始时间 开始时间
Pipi:不知为什么将代码换成您所提供的样子就“荡机”,屏幕变“花瓶”。原来我是这样写的:
Type PARA=record
...
end;

Function BehindCollectAndSave(var hDevice:Longint;

Parameter:PARA;
SourceFileName:PChar;
Words:Longint;
CallbackRoutine:Long;
hwnd :variant ;
ErrorCode:Longint):Boolean;far;external "xxx.dll";
 
没认真看,还有点问题
ByRef ErrorCode As Long 应该翻译成 ErrorCode:PInteger(指向整数的指针)
或者 var ErrorCode:Integer(注意var不能少)
 
ByVal hDevice As Long 要翻译成 hDevice:LongInt 不能有var
hwmd as Any 我认为搞成 hwnd_:HWND 可能比较合理
 
Parameter as PARA 应该为 Parameter:PPARA (指向结构的指针)
或者 var Parameter:PARA (要var)
这样才和原来的完全一样,
象你的 虽然可能能正确运行,但实际不是完全实现的
 
如果用var的话,是不是括号里边每个分号之间都要加个var才行?
比如写成下面这样对吗:
function xxxx(hDevice:longint;
var parameter:para;
errorcode:Pinteger):boolean;....
 
ByRef的参数前才加 var
加var和使用指针编译后的实质是一样的
(hDevice:longint;var parameter:para;errorcode:Pinteger)

(hDevice:longint;parameter:Ppara;var errorcode:integer)
编译后是一样的,只是delphi写起程序来不同
看了你其他的问题
hwmd as Any 应该为 hwnd:Pointer 才对,对应的空值是 nil 注意不是null,不一样的
网络很糟糕,这个问题很长,用了半小时才显示完他
 
PiPi: 真是万分感谢。分先送给你了, 以后有问题还请多多指教。另外也多谢LeeChange.
 
多人接受答案了。
 
后退
顶部