dll怎样获得是谁在调用他本身,返回调用者的handle

解决方案 »

  1.   

    将调用者的Application 传进去赋值给dll的appliaction,返回Application的handle
      

  2.   

    ModuleFileName: array[0..255] of char; // 保存Dll名称
      connectstring, dbuser, dbpassword, dbserver, dbname, path: string;
    begin
      //{取得dll的实际位置}
      GetModuleFileName(GetModuleHandle('PAccessData.dll'), @ModuleFileName[0],
        SizeOf(ModuleFileName));
      path := ExtractFilePath(ModuleFileName) + 'config.dll'; // 取得该目录下ini文件
      

  3.   

    var
      H:THandle;
    begin
      H:=GetCurrentProcess;
    end;
      

  4.   

    在Dll里用GetModuleFileName(NULL,buf,MAX_PATH);
      

  5.   

    GetModuleFileName(NULL,buf,MAX_PATH);
      

  6.   

    简单点的话就在Dll中做一个方法,专门用来接收和初始化一个调用者的信息变量。每当装载Dll时,调用者首先调用这个方法来初始化Dll。