草庐IT

C++ 编译时宏来检测 Windows 操作系统

是否存在任何C++编译时宏来检测正在编译代码的Windows操作系统。我基本上只想在Win7上支持某些功能。所以我有兴趣做这样的事情#if=WIN7//ThisfunctionwoulddosomethingvalidonlyonWin7builds.boolmyfunction{//dosomethinghere}#else//Thisfunctionwouldtypicallyreturnfalse,sinceitsnotsupportedonOSbelowwin7boolmyfunction{returnfalse;}#endif还有其他更好的方法吗?

c++ - 用宏替换 new 与放置 new 冲突

我有一个庞大的应用程序(数百万个LOC,和数万个文件),我正在尝试使用调试crt来检测内存泄漏。我正在尝试像这样宏化new:#define_CRTDBG_MAP_ALLOC#include#ifndefNEW_DEBUG#defineNEW_DEBUGnew(_NORMAL_BLOCK,__FILE__,__LINE__)#definenewNEW_DEBUG#endif现在,我的应用程序如此之大,所以对我来说,理想情况下,我会将其放在一个头文件中,并专门将其包含在数以万计的CPP文件中。不是一个有趣的任务。所以我试图将它放在我们SDK中的一个通用头文件中,该头文件将包含在每个翻译单元

iphone - Objective c 无法定义宏

这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭9年前。我有这个#definesud[NSUserDefaultsstandardUserDefault]然后我使用[sudintegerForKey:key]编译警告:Classmethod'+standardUserDefault'notfound(returntypedefaultsto'id')运行时错误:+[NSUserDefaultsstandardU

objective-c - 如何定义一个函数宏来检查多个本地化字符串文件之间的键?

我有一个Localizable.strings我项目的i18n文件,一个库使用KYLocalizable.strings.我考虑过制作Localizable.strings“子类”来自KYLocalizable.strings,但据我所知不能。因此,我想像SDK那样定义一个函数宏:#defineNSLocalizedString(key,comment)\[[NSBundlemainBundle]localizedStringForKey:(key)value:@""table:nil]#defineNSLocalizedStringFromTable(key,tbl,comment)

c++ - 名为 TYPE_BOOL(c++ 代码)的变量与 ios 宏冲突

我正在尝试将protobufc++构建到ios中。但是它的实现包含一个TYPE_BOOL枚举变量,它与ios宏中的TYPE_BOOL冲突。编译失败。如何解决? 最佳答案 有一些合理的(但很老套)选项:#include使用TYPE_BOOL的任何protobufheader在您#include任何iOSheader之前。示例:#include#include这让您可以在自己的代码中使用iOS的TYPE_BOOL,但不能使用protobuf的TYPE_BOOL。#includeiOSheader,然后是#undefTYPE_BOOL在#

ios - 为 GCD 调用编写宏?

我想为GCD调用创建一个宏,例如:dispatch_async(dispatch_get_main_queue(),^{stuff....});宏看起来像这样:主要(^{...})?不知道怎么写。有什么建议吗?谢谢 最佳答案 建议:不要。除其他外,它会在调试时搞砸行号。你实际上可以定义一个普通的函数来做同样的事情,如果你愿意的话,比如typedefvoid(^VoidBlock)();voidon_main(VoidBlockblock){dispatch_async(dispatch_get_main_queue(),block)

ios - 如何使用定义宏 iOS

我需要定义,但如果我使用iPad或iPhone,在这种情况下我需要不同的值。所以,我认为它应该是这样的:#ifdefUI_USER_INTERFACE_IDIOM==iPAD#defineROWCOUNT12#else#defineROWCOUNT5#endif有什么解决办法吗? 最佳答案 UI_USER_INTERFACE_IDIOM是一个扩展为在运行时而非编译时检查硬件类型的表达式的宏。因此,您可能希望将ROWCOUNT的定义更改为变量而不是const或宏。NSUIntegerrowCount;if(UI_USER_INTERF

iphone - 如何在 Objective-C 中全局定义一个宏?

我想全局定义一个宏。我想在整个项目中覆盖NSLocalizedString()。这可能吗?我该怎么做? 最佳答案 在AppName-Prefix.pch的#ifdef__OBJC__部分声明宏。 关于iphone-如何在Objective-C中全局定义一个宏?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8202526/

ios - 为某些方案向 Xcode 添加宏 BETA=1?

我想在我的应用程序中添加一个新的#define宏,但仅限于某些方案,例如beta方案。做这个的最好方式是什么?我知道当您在测试中(即在模拟器中)运行应用程序时,它会添加一个DEBUG=1宏,但我不知道如何添加更多宏。 最佳答案 最好的方法是使用Xcodeconfigurationfiles.添加几个名为Beta.xcconfig和Distribution.xccconfig(或类似名称)的文件,并为每种构建添加宏。Beta.xcconfig:GCC_PREPROCESSOR_DEFINITIONS=$(inherited)BETA=

ios - 检查 iOS SDK 版本的预处理器和/或宏方法?

我正在构建一个深色主题的iOS6和7应用程序。我知道我可以调用[[UIApplicationsharedApplication]setStatusBarStyle:UIStatusBarStyleLightContent];使iOS7状态栏适合深色主题应用程序。问题是我要将我的应用程序提交到AppStore,而目前Xcode5还没有准备好,所以我必须使用Xcode4.6.x来完成这项任务。但是,对于Xcode4.6,我无法从iOS7编译新方法。我想我必须做类似“"ifios7""的操作,然后执行[[UIApplicationsharedApplication]setStatusBarS