草庐IT

Re-defining

全部标签

c++ - 是什么导致 VS2013 错误 LNK2005 : __xi_a already defined in MSVCRT. lib(cinitexe.obj)?

我的解决方案是昨天构建的。今天,除了.hpp和.cpp文件外,它没有改变任何东西。VisualStudio2013的完整错误文本(使用2013年11月CTP):Error1errorLNK2005:__xi_aalreadydefinedinMSVCRT.lib(cinitexe.obj)C:\Users\drtwox\dev\repos\game\trunk\engine\game\LIBCMT.lib(crt0init.obj)gameError2errorLNK2005:__xi_zalreadydefinedinMSVCRT.lib(cinitexe.obj)C:\Users\

c++ - Klocwork(或其他工具)能否识别类型、typedef 和#define 指令?

我使用lookingfor工具来解决helpdetect错误,这些错误阻止程序作为64位代码正常运行。最近,我一直在玩弄Klocwork及其自定义跳棋功能,它让我可以使用XPath将源代码作为树来导航。这作为正则表达式的“更智能”替代方案很有用,但我无法让它识别类型。例如,假设我想找到使用int或long的for循环的每个实例数数。下面的代码很容易找到。for(inti=0;i搜索这段代码很简单,因为变量定义就在循环内部。但是,请考虑以下示例。inti;//...for(i=0;i这很难找到,因为变量定义与循环是分开的,而且必要的XPath表达式要么笨拙,要么容易出错。那么,自定义Kl

c++ - 现代 C 和 C++ : it is possible to use one defined structure for other declared structure?

假设我想制作某种支持加载图形Image的引擎,所以我有structImage;Image*load_image_from_file(...);我不想让外部世界知道Image到底是什么,他们只会处理指向它的指针。但是在engine内部我想使用特定的类型,例如SDL_Surface在SDL中完全定义。我能否以某种方式重新定义此文件的图像,以便编译器在每次看到Image*(宏除外)时都假定为SDL_Surface*?即我想要像typedefstructSDL_SurfaceImage;这样的东西所有的尝试都像usingImage=SDL_Surface;typedefSDL_SurfaceI

c++ - BOOST_PP_DEFINED 可以实现吗?

是否可以编写一个类似函数的C预处理器宏,如果定义了参数则返回1,否则返回0?让我们将其称为BOOST_PP_DEFINED,类比其他boost预处理器宏,我们可以假设它们也在发挥作用:#defineBOOST_PP_DEFINED(VAR)???#defineXXXBOOST_PP_DEFINED(XXX)//expandsto1#undefXXXBOOST_PP_DEFINED(XXX)//expandsto0我希望将BOOST_PP_DEFINED的结果与BOOST_PP_IIF一起使用:#defineMAGIC(ARG)BOOST_PP_IIF(BOOST_PP_DEFINED(

本地运行没错,打包后在服务器上报错We’re sorry but XXX doesn’t work properly without JavaScript enabled

本地运行没错,打包后在服务器上报错We’resorrybutXXXdoesn’tworkproperlywithoutJavaScriptenabled需要访问两个服务器,使用了网络代理,在本地运行是正常的,打包后报错,再尝试多种解决办法没有生效后,又刷到了‘风弥漫了夏天’这个博主的文章,试了改nginx配置,完美解决具体方法nginx配置文件增加配置如下因为我原本有一个后端服务器,所以这个是新增的,所以,这个api及服务器ip,端口改为新增的服务器信息。//ip是后端项目发布的服务器的ip,port是后端允许访问的端口,即项目端口//api是前端使用的请求后端的时候的基础urilocatio

c++ - 是否有某些关键字不应该是我的 "#defined"?

我正在用C/C++为我的应用程序开发一个平台层。我愿意#defineWINDOWS//在Windows机器上#defineANDROID//在Android手机上由于与其他库的冲突,定义诸如“WINDOWS”或“ANDROID”之类的非常常见的关键字是不是一个坏主意,是否可以在这些关键字前加一些前缀:#defineMYLIB_WINDOWS//不被任何其他3rdparty库使用#defineMYLIB_ANDROID 最佳答案 Iwouldliketo当心在你的库的头文件中公开带有“通用”名称的宏。还要注意私有(private)代码

c++ - 将#warning 放入#define 的正文中

在应该能够在C和C++文件中编译的header中,在VisualStudio(2010)和MinGW(32位-v3.4.5、64位-v4.5.0)中,我试图最小化大小通过更改每一行(其中有很多)://forsymbolA#ifdef__GNUC__#warningSymbolAisdeprecated.UsepredefinedconstcnAinstead.#else#pragmamessage("SymbolAisdeprecated.UsepredefinedconstcnAinstead.")#endif//SameforB//SameforC//...到//definethi

c++ - 如何使用 RE2 查找匹配字符串的偏移量?

RE2是Google提供的现代正则表达式引擎。我想在当前使用gnuregex的程序中使用RE2。我遇到的问题与找出匹配的内容有关。RE2返回的是匹配到的字符串。我需要知道匹配的偏移量。我目前的计划是获取RE2返回的内容,然后在C++字符串上使用find。但这似乎很浪费。我已经阅读了RE2手册,但不知道该怎么做。有什么想法吗? 最佳答案 将结果存储在re2::StringPiece而不是std::string中。.data()的值将指向原始字符串。考虑这个程序。在每个测试中,result.data()是指向原始constchar*或s

c++ - 为什么我在编译 DLL 项目时收到错误 LNK1561 "Entry point must be defined"?

我尝试将一个非常简单的动态库项目编译为.dll文件。该项目的名称是“图书馆”。我正在使用VisualStudio2015,项目属性如下:DebugPropertiesReleaseProperties工程中只有两个文件:ClassA.h和ClassA.cpp。ClassA.h中的代码是:#ifndefCLASSA_H#defineCLASSA_Husingnamespacestd;#ifdefLIBRARY_EXPORTS#defineCLASSA_API__declspec(dllexport)#else#defineCLASSA_API__declspec(dllimport)#e

c++ - 哪些用例需要 #define 而不使用标记字符串?

之前在学习C的时候遇到过#define预处理器指令,后来在看的一些代码中也遇到过。但是除了用它来确定常量的替换和定义宏之外,我还没有真正理解它在没有“主体”或标记字符串的情况下使用的特殊情况。以这一行为例:#defineOCSTR(X)就是这样!这个或更好的用途是什么,什么时候需要使用#define? 最佳答案 这用于两种情况。第一个也是最常见的涉及条件编译:#ifndefXYZ#defineXYZ//...#endif你肯定自己用过它来包含守卫,但它也可以是用于诸如系统依赖之类的事情:#ifdefWIN32//Windowsspe