我想在某个Unit中写一个方法,或者类方法。
得到 属于的bpl名字,如果是路径就最好了。
因为,某些配置文件是跟着bpl走的。而这些配置文件只用于这些bpl。
(不晓得,在bpl中取Instance是exe的,还是bpl的。)

解决方案 »

  1.   

    试试
    1、Application.ExeName
    2、GetModuleFileName
      

  2.   

    用GetModuleFileName,事先要記錄LoadPackage返回的bpl模塊句柄
      

  3.   

    Instance是在EXE和BPL共享的,也就是EXE的实例句柄,Avan_Lan的正解,需要获取LoadPackage返回的bpl模塊句柄
      

  4.   

    那不是很麻烦?
    exe Load bpl后还要告诉bpl,你的句柄是多少?
    那还直接把Load的文件给bpl,更直接。
      

  5.   

    用LoadPackage再加载一下,就可以获得句柄
      

  6.   

    有个全局的HInstance 变量.好像是在sysinit单元中.直接GetModuleFileName(HInstance, buf, max_path)就行了.连文件名带路径全有了.
      

  7.   

    若是exe程序,则HInstance是exe的实例句柄,由于bpl是和exe共享vcl包的,所以取到的会是exe的实例句柄。
    若是dll,则HInstance是dll的句柄,而不是exe的,因为他们不共享vcl包
      

  8.   


    若是exe程序,则HInstance是exe的实例句柄,由于bpl是和exe共享vcl包的,所以取到的会是exe的实例句柄。
    若是dll,则HInstance是dll的句柄,而不是exe的,因为他们不共享vcl包//--------------
    如果是loadpackage的方法.是可以的,如果不是动态加载的话.可以用下面的方式.
    GetModuleFileName(FindClassHInstance(TCPISForm), Buf, 100);
      

  9.   

    或者
    GetModuleFileName( FindHInstance(pointer( HInstance)), Buf, 100);
      

  10.   


    s:=GetModuleName(HInstance);    // c:\...\MyTest.bpl
    s:=GetModuleName(MainInstance); // d:\...\Project1.exe
    GetModuleFileName 还没有试过,之后我试试看。
    结贴了。