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

    技术2022-05-11  108

    有几个朋友经常向我问题在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;


    最新回复(0)