我做的执行程序,因为是基于其他软件的二次再开发,因此会调用基础软件的库等现在我做的程序,加入放到基础软件的相同目录就可以执行,如果放到其他路径就会提示无法找到组件,
但是如果我用bat批处理文件指定基础软件的安装目录,任何是可以执行的。现在的问题就是我有没有办法把批处理做的工作也集成到软件自动完成,我不希望通过批处理再来执行

解决方案 »

  1.   

    系统的PATH环境变量没有你那个第三方软件的安装目录,所以找不到的。当程序执行时,LoadLibray是先检查当前目录下是否有要引用的DLL,找不到再检查windows安装目录下的system32目录,如果还找不到,则找path环境变量里的目录,如果都找不到,肯定报错。建议你把你的二次开发写成EXE的形式,然后通过动态加载的形式去调用第三方软件的动态库,这样你程序就有机会启动,然后判断第三方软件的安装目录等信息,再自己loadlibray第三方软件的DLL。
      

  2.   

    不对,我的程序就是EXE执行程序
      

  3.   

    不可以LoadLibray,因为很多DLL,我不可能一个个去LoadLibray,而且不同的版本DLL名字也有可能会变