从不同的附加依赖项中识别相同的命名函数

identify equal named functions from different additional dependencies

我在 Visual Studio 中有一个 C++ 项目,其中库(oldVersion.lib、newVersion.lib)是通过项目属性 -> 链接器 -> 输入 -> 附加依赖项添加的。

两个库包含相同的功能(例如 foo())。这些函数包含在它们的头文件中,并通过 ::foo().

调用

代码本身没有显示错误,但在运行时不清楚是否执行了旧版本或新版本的 foo()

是否可以区分来自两个不同 .lib 的相同命名函数? (Like aliases in C#)

我尝试了什么:

对不起,我应该提供一个更好的方案,而不是一个复杂的方法。

方法如下:只需告诉 linker 库中的符号有其他名称并使用该名称即可。您需要创建一个 def file and provide the name translation in the EXPORTS 部分。该过程是为其中一个库创建一个 def 文件,然后使用该 def 文件构建一个 lib 文件,然后 link 使用该 lib 文件。

此外,您可以参考此link以获取有关此方法的更多信息,该方法由 Jim Monte 提供。