我有一个调用DLL的程序,如果程序在调用DLL之前导入一个文件(路径就已 A 表示),导入的文件跟DLL没有关系,然后调用DLL,DLL运行的时候会产生一个文件,这个时候DLL产生的文件路径就默认跑到 A 去了。所以问题是:在调用DLL之前没有办法获取到路径A的情况下,我怎么才能找到DLL产生的文件路径呢。

解决方案 »

  1.   

    你不可以把dll路径固定下来吗? 不能完全固定最起码,你可以把dll文件和exe放到同级目录或者放到exe下级目录.获取exe路径不就行么.
      

  2.   


    现在就是因为没有DLL源码,所以dll路径固定不下来,另外DLL是跟exe文件放一起的。但是如果界面上有执行导入文件,DLL产生文件的路径就跟导入的文件路径跑了。不导入文件的话DLL产生文件的路径到是在exe目录下
      

  3.   

    dll生成的文件的路径是用的Application或是Evirmonent里面的路径吧
      

  4.   

    就是说没有办法监视到这个DLL产生文件的路径
      

  5.   

    应该是使用Evimonent的路径吧。你试着改变下试试看。
      

  6.   

    显然dll没做好,要求对方重做,它dll肯定是用的当前路径,而不是程序启动路径,加载文件后,当前路径就自动改变为所加载文件的路径了。
      

  7.   

    你所谓的 “导入文件” 是一个自己写的功能 还是 DLL中的 一个功能?如果 是 自己写的功能 那这个 功能 和 DLL 之间的关系是什么?如果是调用的DLL中的一个功能,那么 很有可能 是DLL 根据导入文件 的 路径 生成的 [日志或者操作文件]
    如果 没有 导入 则在 DLL所在目录 生成 [日志或者操作文件]。
      

  8.   

    靠猜太不靠谱了ILSPY看看那个dll是怎么获取文件保存目录的,
    然后决定如何能控制它,