首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi dll项目中 dpr和pas的全局变量如何设置

2013-07-16 
delphi dll项目中 dpr和pas的全局变量怎么设置?这个是dpr里面的部分代码Function SetHook(h:HWND):boolean

delphi dll项目中 dpr和pas的全局变量怎么设置?

这个是dpr里面的部分代码


Function SetHook(h:HWND):boolean;stdcall;---h:HWND是一个传入的参数
var
 GameTid:THandle;
begin
   gamehwid:=h;//这里把参数给这个变量  gamehwid 这个是dpr中的代码 这个数据在其他的pas中用到 怎么定义这个变量?  
Result:=false;
 if (windows.IsWindow(h)=false) then
   begin
   Messagebox(0,'无效窗口句柄','error',0);
   exit;
   end;//如果未打开则退出
   GameTid:=GetWindowThreadProcessId(h);
   keyhhk:=SetWindowsHookEx(WH_GETMESSAGE,@GetMsgProc,HInstance,GameTid);
   if keyhhk>0 then
   Result:=true;
end;

procedure DllEnterProc(reason:integer);
begin
   case reason of
   windows.DLL_PROCESS_ATTACH: begin end;
   windows.DLL_PROCESS_DETACH: begin Form1.Free;form1:=nil; end;
   end;
end;
exports   //导出函数
   SetHook;
begin
dllProc:=@DllEnterProc;
end.

这个是pas里面的部分代码

      
if gamehwid>0 then  //调试的时候发现这个数据被重置为0,导致后面的调用失败。
       begin
        SwitchToThisWindow(gamehwid,true);
       delay1(3000);
       keybd_event(65,0,0,0);
     keybd_event(65,0,KEYEVENTF_KEYUP,0);

       delay1(4000);
       tab();
       delay1(4000);
       delay1(4000);
       end;


   gamehwid:=h;//这里把参数给这个变量  gamehwid 这个是dpr中的代码 这个数据在其他的pas中用到 怎么定义这个变量? 求了解的帮下这个忙。

Delphi 全局变量
[解决办法]
pas文件中定义全局变量,在dll dpr中 uses xxx.pas {变量}; ,如果需要多个变量就 {变量1}{变量2}{变量n}...
例如

// dll 项目中的一个单元 unit1



unit Unit1;
interface
implementation

var  // 全局变量
  myInt:Integer = 100; // 可以直接初始化
  myStr:String;
end.




// dll 项目的 dpr

library Project1;
uses
  SysUtils,
  Classes,
  unit1 in 'unit1.pas' {myInt} {myStr};// 引入 unit1单元的两个全局变量

{$R *.res}

begin
end.

热点排行