我尝试禁止使用某个方法,如果某段代码使用它会产生编译错误。
这是一个专有的遗留模块,我知道有些方法存在问题。我们有头文件和dll。
我无法弄清楚这个方法在我使用的巨大项目中的所有用法(很多定义,一些隐式演员......)
如果编译器检测到使用此方法,编译器是否可以停止(或只是警告)?
答案 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