做了一个dll,怎样在被调用用时确定自己的路径,请各位朋友指教,谢谢!

解决方案 »

  1.   

    确定自己的路径? 还是 调用本DLL的进程的地址??用 GetCurrentDirectory 试试
      

  2.   

    但dll本身是被调用的,当时在dll中调用这个函数是取的应用程序的当前路径还是本身文件所在路径呢?
      

  3.   

    我做个activex object,在被调用时,要使用本身文件所在的路径,谢谢,请指点。
      

  4.   

    你可以先去试验一下不行额话 在DLLMAIN中去处理
      

  5.   

    哦, 你说的DllMain是指...?
      

  6.   

    我试过了,GetCurrentDir()函数取的是调用Dll的父进程的当前目录。所以不行,不知道那位试过?
      

  7.   

    function GetDirName(DirName: String):String;
    {  返回值为整理后的目录字符串  }
    begin
      if DirName[Length(DirName)]<> '\' then
        Result := DirName+'\'
      else
        Result := DirName;
    end;function GetProgDir: String;
    var
       intSize: Integer;
       arrPath: array[0..260] of Char;
    begin
       FillChar(arrPath, SizeOf(arrPath), 0);
       intSize := GetModuleFileName(HInstance, arrPath, 260);
       arrPath[intSize] := #0;
       result := GetDirName(ExtractFilePath(arrPath));
    end;
      

  8.   

    楼上的楼上给你回答了intSize := GetModuleFileName(HInstance, arrPath, 260);这个hInstance就是你的DLLMAIN中调用的instance的句柄 直接用就是。