dll加载的问题

由于dll是动态加载,加载失败的话,编译会通过,但程序会异常。比如qt中会出现程序窗口不出现的问题。

加载失败一般是两个方面引起的

1.路径错了,编译器找不到指定的dll

2.dll存在依赖

第二点比较隐蔽,我搞了一天才在qmake的环境下搞好,当一个dll中还依赖另外的dll时,就需要连接器自己去到相应的目录下去找,他很笨的,除了大家通用的目录之外不会找其他目录,所以当出现这种情况时,要指定搜索的目录。

在qmake的pro中 是通过INCLUDEPATH实现的,支持通配(./),这个选项就指定了,当依赖的dll找不到时还要到哪里去找,

INCLUDEPATH += .

这就是说在当前目录下找,

对于隐式加载而言,这是不够的,这从效果上只是指定了依赖项dll的加载目录,你在程序中直接使用的dll需要再加上一条

LIBS +=-L. -labc

这就是说 我要从-L选项后面的路径中加载abc,当abc依赖的qwe找不到时,就去搜索系统通用路径,依然找不到时就去搜索INCLUDEPATH

mfc的情况如下

http://blog.csdn.net/woyaowenzi/archive/2009/07/08/4332187.aspx

posted @ 2010-03-30 21:44  donj  阅读(255)  评论(0编辑  收藏  举报