c++ - native VC++ 使用外部(非项目)dll 引用如何指定 dll 的路径

标签 c++ dll visual-studio-2005 native

我有一个使用 dll 的 native VC++ 项目(不在项目中)。现在,我必须将 dll 放在“Windows 用于查找 DLL 的搜索路径”中 link

但我不希望 dll 位于可执行目录或当前目录或 windows 或系统目录中。

所以我唯一的选择是将路径添加到 %PATH% 环境变量。

还有其他办法吗?

是否有一种优雅的方式(添加到 PATH)?我应该在安装时这样做吗?如果我这样做,我应该担心吗?

最佳答案

总结我发现的所有技术:

  • 如果您使用托管项目作为启动项目(这实际上是我的情况) 使用环境类

string temp = "myFullDirectoryPathToDll"; 字符串 temp2 =Environment.GetEnvironmentVariable("PATH") + ";"+ 温度; Environment.SetEnvironmentVariable("PATH", temp2);

这个,我想MSDN应该强调了,只在这个过程中改变环境变量PATH。

在 VS 中调试时,appPath 不“工作” 使用 properties->debug->environment 并合并环境变量 link

  • 如果您使用母语: 进行显式链接 - 对于简单的事情来说似乎是一项艰巨的工作, 可能在部署时使用 appPath 注册 key link , 没有人有经过测试和证明的答案

关于c++ - native VC++ 使用外部(非项目)dll 引用如何指定 dll 的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/229664/

相关文章:

c++ - 如何使用用户给定的值创建一个表(使用 scanf)?

c# - 如果我只有 DLL 和 PDB 文件,有没有办法在按 F12 时浏览源代码?

c# - 从 c# 代码传递结构引用以调用在其原型(prototype)中接受结构引用的 c++ DLL 函数

c++ - 具有引用模板参数的部分特化无法在 VS2005 中编译

c++ - 命名空间编译问题

java - c++ "new"关键字与 java 的比较

c++ - 可以在 C++11 lambda 中隐式捕获参数包吗?

c++ - 后缀符号 C++ 的中缀

asp.net - 类型或命名空间名称 'DataAnnotations' 在命名空间 'System.ComponentModel' 中不存在

c++ - 在 Windows 启动时加载应用程序