主程序与DLL之间的全局变量问题

来源:互联网 发布:零基础java 编辑:程序博客网 时间:2024/04/30 10:24

       在DLL中怎么共用一个全局变量。比如像用户登陆后的用户名(UserName)...  其实这个问题很简单。下面我把我的做法写出来大家一起分享。

       把共享的变量放在主程序里:UserName,....等等,在主程序里写两个函数
      

Function CurUserName():PChar;begin Result:=pchar(UserName);end;procedure SetCurUserName(LoginUserName: PChar)begin UserName:=LoginUserName; end;然后在主程序的工程文件(*.dpr)里输出这两个函数里写.....{$R *.res}exports  CurUserName, SetCurUserName;....这样在每个DLL里就可以使用这两个函数了function CurUserName: PChar; //从主程序里获取当前登陆帐号var  GetCurUserName: function: pchar;begin  @GetCurUserName := GetProcAddress(GetModuleHandle(pchar(application.Exename)), 'CurUserName');  if Assigned(GetCurUserName) then //找到    result := GetCurUserName  else    result := 'admin';end;