我的软件有 v1 和 v2 版本。 v1 使用注册表来保存设置,大量调用 GetProfileInt 等。v2 现在使用 sqlite 数据库来保存设置。
我们目前正在开发这两个分支,并将新功能从 v1 分支合并到 v2 分支。目前,我们必须记住更新任何注册表调用以使用新的配置数据库,而这已经被错过了几次。
我想要的是,如果在 v2 中使用任何 GetProfile... 或 WriteProfile... 函数,则抛出编译器错误。
我们在 Visual Studio 2010 中使用 C++。如果没有内置任何内容,我可以使用脚本的输出以某种方式引发编译器错误吗?
既然这个答案被接受,我不妨包括提问者实际使用的解决方案:
雅各布西发现了已弃用的编译指示
#pragma deprecated(GetProfileInt)
原答案:
您可以使用以下方式将它们声明为已弃用__declspec(deprecated)
。它看起来像这样:
UINT __declspec(deprecated) WINAPI GetProfileInt(
__in LPCTSTR lpAppName,
__in LPCTSTR lpKeyName,
__in INT nDefault
);
您必须从您关心的每个翻译单元中包含的标头中执行此操作。每当包含已弃用声明的翻译单元使用该函数时,这样做都会导致警告。
如果您想要编译器错误,并且您的项目尚未将警告视为错误,那么您必须将其打开,并且可能修复您忽略的所有警告。 (无论您是否使用此解决方案,这些都是很好的做法。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)