c++ - 用冲突的命名空间替换 C++ 中的 dll

标签 c++ dll

我的c++程序中有一个dll,我想自己重写并替换掉它。

我要替换的 dll 有 3 个类。我想用我的新 dll 逐一替换每个类,但我不想更改任何其他代码。

为此,我打算在新 dll 中使用与旧 dll 中相同的类名。

但是我想替换一个类,运行我的程序然后替换下一个类等,这样我就不必一次尝试更改所有内容以确保一切正常。

有没有办法做到这一点?我假设如果两个 dll 都包含在内,命名空间将发生冲突

最佳答案

我不确定您正在尝试做什么,但像 Neil 指出的那样的东西可能效果很好。使用不同的命名空间名称可能会奏效,然后在您准备好删除旧命名空间时将较新的命名空间重命名为生产名称。

链接时,可以指定多个lib文件。我知道 lib 文件的顺序可以确定使用哪个。我忘记了它是否可以用于此目的,但也许您可以指定具有相同类和函数的多个 lib 文件,链接器将使用 DLL 作为它为该类找到的第一个 lib 文件。我忘记了它是如何工作的细节。

关于c++ - 用冲突的命名空间替换 C++ 中的 dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27029953/

相关文章:

c++ - 通过指针调整数组大小

c++ - 数组中的多线程写操作

c++ - 无法运行 DLL 链接的 C++ exe。 "This program cannot be run in DOS mode."错误

c++ - 程序无法在其他 Windows 机器上正常运行

dll - 在浏览器中运行 C# dll 仅用于计算

c++ - 在构造 std::variant 时禁用从指针类型到 bool 的隐式转换的最佳方法是什么?

c#代码转成QT C++

java - i++ 或 i-- 在 for 循环中?

c++ - 如何用C++调用LabVIEW构建的DLL

java - 在java中可靠地卸载dll