在下一鞠躬,二鞠躬,三鞠躬求:pb程序中有动态库不在同一目录下难题答案

时间:2021-11-08 12:25:30
我做的pb程序,有很多个库,main.pbl,和object1.pbl……,编译当然就得main.dll和object1.dll……
但实际情况是运行时主程序跟其他库的dll不在同一个目录下(因为库太多了,客观条件不能放一起),这时调用其他库的东西时就出错了。
这种情况下如何才能让程序能正常运行呢???
请教高人!!!在下一鞠躬,二鞠躬,三鞠躬……

17 个解决方案

#1


不必一鞠躬,二鞠躬,三鞠躬,先平身

#2


SetLibraryList

#3


编译时应该连路经都编译进去了。按道理来说不应该出现这种情况。

#4


编译成PBD

#5


SetLibraryList 还是不行。不知道为什么?

编译成pbd也试了,也不可以,不知道为什么?

就是提示:Error:Unresolvable external w_about when linking reference

w_about 是在其他库的窗口。

我的代码是这样的:
在主应用的open事件中:
mainfrm.SetLibraryList("w_about窗口所在的库的路径")

#6


编译成DLL,要设置系统环境变量的PATH
在最后加上DLL的路径

想当然的回答,没经测试

#7


不行啊,大哥

#8


你的pbd或者dll文件是不是全部编译了
还是只是部分编译。

#9


全部编译了

#10


你编译成一个exe不就行了,何必要分成多个呢.

#11


我的库太多了,要分别刻与不同光盘上,用到那个库插那张光盘。

#12


这样做当然是有必要,不是没事找事!!!我也不想啊。

#13


你先用GetLibraryList()取得原来的路径,然后再把其它的路径附加原来的路径之后.如下所示:

string ls_list
ls_list = getlibrarylist ()
ls_list=ls_list + ",其它库路径\库名称.dll(或者是pbd)"  //注意各个路径之间用逗号(,)分隔
SetLibraryList(ls_list)\PB\tools\kq.pbd")

//在硬盘上试过,用的绝对路径,不知道你的结果是不是跟刻成光盘有关系.

#14


在winXP或win2000的系统环境变量中设PATH不行吗?

#15


sdhylj(青锋--SS)  正解.

#16


最后一句写的有问题,多了些东西,去掉后面的\PB\tools\kq.pbd").改成如下
SetLibraryList(ls_list)

即:
string ls_list
ls_list = getlibrarylist ()
ls_list=ls_list + ",其它库路径\库名称.dll(或者是.pbd)" //注意各个路径之间用逗号(,)分隔
SetLibraryList(ls_list)

#17


安装的时候请注册到注册表中,可以解决掉这个问题。

#1


不必一鞠躬,二鞠躬,三鞠躬,先平身

#2


SetLibraryList

#3


编译时应该连路经都编译进去了。按道理来说不应该出现这种情况。

#4


编译成PBD

#5


SetLibraryList 还是不行。不知道为什么?

编译成pbd也试了,也不可以,不知道为什么?

就是提示:Error:Unresolvable external w_about when linking reference

w_about 是在其他库的窗口。

我的代码是这样的:
在主应用的open事件中:
mainfrm.SetLibraryList("w_about窗口所在的库的路径")

#6


编译成DLL,要设置系统环境变量的PATH
在最后加上DLL的路径

想当然的回答,没经测试

#7


不行啊,大哥

#8


你的pbd或者dll文件是不是全部编译了
还是只是部分编译。

#9


全部编译了

#10


你编译成一个exe不就行了,何必要分成多个呢.

#11


我的库太多了,要分别刻与不同光盘上,用到那个库插那张光盘。

#12


这样做当然是有必要,不是没事找事!!!我也不想啊。

#13


你先用GetLibraryList()取得原来的路径,然后再把其它的路径附加原来的路径之后.如下所示:

string ls_list
ls_list = getlibrarylist ()
ls_list=ls_list + ",其它库路径\库名称.dll(或者是pbd)"  //注意各个路径之间用逗号(,)分隔
SetLibraryList(ls_list)\PB\tools\kq.pbd")

//在硬盘上试过,用的绝对路径,不知道你的结果是不是跟刻成光盘有关系.

#14


在winXP或win2000的系统环境变量中设PATH不行吗?

#15


sdhylj(青锋--SS)  正解.

#16


最后一句写的有问题,多了些东西,去掉后面的\PB\tools\kq.pbd").改成如下
SetLibraryList(ls_list)

即:
string ls_list
ls_list = getlibrarylist ()
ls_list=ls_list + ",其它库路径\库名称.dll(或者是.pbd)" //注意各个路径之间用逗号(,)分隔
SetLibraryList(ls_list)

#17


安装的时候请注册到注册表中,可以解决掉这个问题。