我的程序中引用了一个dll组件,为了使程序能找到这个dll组件,就用regsvr32 222.dll,把组件注册了一下。
在这个组件又定义了数据库的存放位置:DBPath = App.Path & "\Database\111.mdb",打包安装后,程序运行时提示找不到数据库的存放位置,因为注册组件时,把组件注册到了:"c:\windows\system32\"这个位置,所以只有手动把数据库复制到"c:\windows\system32\Database\111.mdb",程序才能正常运行。
程序的安装路径为:"c:\Program Files\Mysoft"。怎样编程把数据库存放在"c:\Program Files\Mysoft\Database\111.mdb",又让程序能正常运行(在组件中也要对数据库进行读写数据)?(我的弱弱的想法是:能不能把222.dll注册到c:\Program Files\Mysoft这个路径下。)
不过楼主的设计思路有问题
DLL应该是你自己写的吧。你在主程序中应该把APP.PATH作为参数传给DLL,以便DLL调用数据库。
程序设计时,工程/引用,添加的222.dll用的是绝对位置:如"E:/我的程序/222.dll",所以编译后的exe文件引用的也是"E:/我的程序/222.dll",
程序打包安装后的位置是c:\Program Files\Mysoft(222.dll,数据库,exe文件也在文件夹中),如何编程实现打包后引用c:\Program Files\Mysoft\222.dll?
这个问题怎么解决呢?
也就是与你EXE文件所在的同一个位置。