VS2008 C++ 如何指定运行和调试时的dll路径?
举例如下:
有以下无误库.
D:\MyCppExLib\bin\A.dll
D:\MyCppExLib\include\A.h
D:\MyCppExLib\lib\A.lib
设置D:\MyCppExLib\include\和D:\MyCppExLib\lib\
至"工具"->"选项"->"项目和解决方案"->"VC++目录"中的 "包含文件" 及 "库文件" 中.
而后我有测试解决方案在
D:\MyProject\test\
工程在如下目录中
D:\MyProject\test\test\
测试工程内需调用A中函数.
已设置好链接器附加依赖项 "A.lib"
生成解决方案,编译无误得到test.exe于
D:\MyProject\test\Debug\
问题是,如何使得以下情况均得到满足?
A.双击D:\MyProject\test\Debug\中的test.exe
以及
B.在VS中执行(F5或Ctrl+F5)都能正确执行而不报错(没有找到A.dll)?
我做了以下试验.
1.将A.dll置于C:\WINDOWS\system32\ //A,B均可
2.将A.dll置于目录D:\MyProject\test\Debug\ //A,B均可(但若生成执行Release就要再复制A.dll至相应目录)
3.将A.dll置于目录D:\MyProject\test\test\ //A不可, B可
4.将A.dll置于目录D:\Program Files\Microsoft Visual Studio 9.0\VC\bin\ //A不可, B可
5.将D:\MyCppExLib\lib\添加至系统环境变量"Path"中. //A可, B不可
6.将D:\MyCppExLib\lib\添加至"工具"->"选项"->"项目和解决方案"->"VC++目录"中的 "可执行文件" 中. //A,B均不可
这么看下来好像只有试验1最满意了, 但是我又不想把dll往C:\WINDOWS\system32里扔而保持MyCppExLib的原样..
我重点想关心的是试验5,6.
如果试验6成功就完全满足我的需求了. (类似的情形在codeblocks中以试验6,完成A,B均可.)
让我奇怪的是试验5在B的情况下居然也不行...
后我在test的工程属性中也进行了各种尝试均以失败告终... 囧
零零散散敲了这么多,如果仔细看到这里辛苦您啦, 希望各位同仁帮忙~ 解惑试验5,6,或给出除试验1的另外方法
[解决办法]
一般是编译的时候生成h,lib,bin等目录,但是可以添加工程的post build属性,把编译后的h,lib,dll文件都copy到一个统一的目录,然后exe调用的时候都到这个目录中link等,这样就可以避免来回设置的问题
[解决办法]
感觉Path方式应该能达到楼主要求啊,再查下是不是路径写错了,或者系统变量和用户变量的Path都添加上。
[解决办法]
系统找dll属性
1、当前exe目录下
2、当前进程目录下
3、系统system目录下
4、windows目录下
5、环境设置的路径下
要想找到,设置工作目录:属性-配置属性-调试-工作目录
设置D:\MyCppExLib\include\和D:\MyCppExLib\lib\
至"工具"->"选项"->"项目和解决方案"->"VC++目录"中的 "包含文件" 及 "库文件" 中.
你的设置能够保证编译和链接通过
[解决办法]