社区
VC.NET
帖子详情
设置DLL搜索路径
liaomingxue
2008-01-10 09:20:16
程序中需要调用很多不同路径下的dll,如果在PATH中设置这些路径,程序当然没有问题。
我现在想在vc2005中调试该程序,希望能不需要设置PATH环境变量就能正确调试,不知道在开发环境中能否配置好搜索路径【经过测试,在“工具-选项-可执行文件”中设置dll的路径,那么调试的时候还是会提示找不到dll】。
...全文
1910
8
打赏
收藏
设置DLL搜索路径
程序中需要调用很多不同路径下的dll,如果在PATH中设置这些路径,程序当然没有问题。 我现在想在vc2005中调试该程序,希望能不需要设置PATH环境变量就能正确调试,不知道在开发环境中能否配置好搜索路径【经过测试,在“工具-选项-可执行文件”中设置dll的路径,那么调试的时候还是会提示找不到dll】。
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ecjtuync
2008-10-08
打赏
举报
回复
[Quote=引用 2 楼 akirya 的回复:]
VS2005中工程编译选项 debugging environment,自己设置path
[/Quote]
请问在VS2005中 怎么在 debugging environment设置path , 怎么把这个path变量加上去????
crashbluebird
2008-01-12
打赏
举报
回复
1. copy to system32
2. copy to current dir
liaomingxue
2008-01-11
打赏
举报
回复
(1) 写入注册表有两个问题:一是程序更加复杂;二是不好区分相同dll的不同版本
(2) 直接将所需DLL都拷贝到system32里应该可以吧
问题同上
关键的问题是:我要用到的dll涉及到几十种不同功能,因此一般地要求放在不同路径之下;二是这些dll在我的计算机中有很多不同的版本,有的用来做调试,有的用来做发布,还有的保存着做测试等等。
因此,希望能在开发环境中设置多个路径,用来搜索dll,即类似LIB的搜索路径设置功能。
真相重于对错
2008-01-10
打赏
举报
回复
写入注册表
vecri
2008-01-10
打赏
举报
回复
Visual C++
Windows 用来定位 DLL 的搜索路径
通过隐式和显式链接,Windows 首先搜索“已知 DLL”,如 Kernel32.dll 和 User32.dll。Windows 然后按下列顺序搜索 DLL:
1. 当前进程的可执行模块所在的目录。
2. 当前目录。
3. Windows 系统目录。GetSystemDirectory 函数检索此目录的路径。
4. Windows 目录。GetWindowsDirectory 函数检索此目录的路径。
5. PATH 环境变量中列出的目录。
vecri
2008-01-10
打赏
举报
回复
直接将所需DLL都拷贝到system32里应该可以吧。
珍惜生命远离CPP
2008-01-10
打赏
举报
回复
VS2005中工程编译选项 debugging environment,自己设置path
applethink
2008-01-10
打赏
举报
回复
我觉得自己专门写个类来维护这些路径比较好。
Windows 8 desktop app中
dll
搜索
路径
设置
的诡异现象,Bug?
某个桌面程序在win 8上运行异常的问题困扰了我有近一周,今天终于找到了根本原因,严重怀疑是win 8的一个Bug。 (所有程序都是desktop app,跟Metro模式无关) 情况是这样的,比如有个Main.exe会通过CreateProcess启动另外一个Sub.exe,而这个Sub.exe中会通过LoadLibrary动态加载多个动态链接库,Main.exe和Sub.exe以及相关dl
VS
设置
dll
保存目录,使得exe和
dll
不在同一目录
VS
设置
dll
保存目录,使得exe和
dll
不在同一目录 ##
设置
dll
延迟加载 增加
DLL
的
搜索
路径
,代码中添加如下代码 const char *
dll
_path = { “.\
dll
” }; Set
Dll
Directory(
dll
_path); 本文来自: https://blog.csdn.net/d4567star/article/details/82993777 ...
延时加载
DLL
通常情况下应用程序 exe 文件与加载的
dll
会安装在同一个目录,想要延时加载
dll
只需要在 VS 属性页-》链接器-》输入-》延迟加载的
DLL
中填入想要加载的
DLL
,在 属性页-》链接器-》高级-》卸载延迟加载的
DLL
改为 是 即可。 当应用程序和
DLL
,不在同一个目录下时,程序只会在应用程序当前目录
搜索
DLL
, 此时将会加载失败。为了正确加载
DLL
, 需要在程序中将
DLL
的安装目录
设置
进来。 在我的项目中,windows 系统会启动 AUDIODG.exe 的应用,这个文件在
@ C++ 编写的exe和
dll
不在同一
路径
也能运行的
设置
@ C++ 编写的exe和
dll
不在同一
路径
也能运行的
设置
VC 2017
设置
工作目录为
dll
的保存目录 ##
设置
dll
延迟加载 ##增加
DLL
的
搜索
路径
const char *
dll
_path = { “.\
dll
” }; Set
Dll
Directory(
dll
_path); ...
[C++][
Dll
]
dll
调用其他
路径
下的
dll
的简单方法
1.
设置
延时加载其他
dll
项目属性--》连接器--》输入--》延迟加载的
DLL
,在这里填写
dll
的全称,如pci8408.
dll
2.在
dll
被程序加载的时候更新一下
dll
的
搜索
路径
(一般在
dll
中的InitInstance函数或者
dll
main函数中添加) //change path std::string szPath; char szBuff[MAX_PATH] = { 0 }; //在
dll
main里_AtlBaseModule会提示找不到,添加一下alt的相关东西就行
VC.NET
7,538
社区成员
27,670
社区内容
发帖
与我相关
我的任务
VC.NET
.NET技术 VC.NET
复制链接
扫一扫
分享
社区描述
.NET技术 VC.NET
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章