禁止链接到c ++方法

时间:2015-05-29 15:06:23

标签: c++ c++11 visual-studio-2012 dependency-walker

我尝试禁止使用某个方法,如果某段代码使用它会产生编译错误。

这是一个专有的遗留模块,我知道有些方法存在问题。我们有头文件和dll。

我无法弄清楚这个方法在我使用的巨大项目中的所有用法(很多定义,一些隐式演员......)

如果编译器检测到使用此方法,编译器是否可以停止(或只是警告)?

2 个答案:

答案 0 :(得分:1)

您可以在Visual C ++中使用__declspec(deprecated)来生成使用特定函数的警告。您可以使用#pragma deprecated来弃用任何符号(包括宏)的使用。

查看更多信息on MSDN。这可能会产生警告或错误(取决于计算机标记),但您可以在需要时使用其他#pragma s

来压制它们

答案 1 :(得分:0)

嗯,不确定它是否有效(所以请纠正我),但你可能想玩你的DLL中的libs

从VS命令提示符

开始。

dumpbin /exports yourdll.dll

您将获得导出符号输出并将其复制到.def文件

编辑.def文件以删除不需要的符号

制作lib并将其链接到您的应用

lib /def:C:\mydef.def /OUT:C:\mylib.lib