草庐IT

ANSI_WARNINGS

全部标签

c++ - 提神气 : How to report parser warnings?

如何报告解析器警告?类似于报告错误,但解析器不能停止。仅记录警告消息和引起警告的子表达式。示例输入:select*fromtablewhererow>=''&&row'hello'预期输出:Warning:expressionisalwaystrue:row>=''Warning:&&isdeprecated,useAND:row>=''&&row'hello'Warning:isdeprecated,use!=:row'hello' 最佳答案 如果你想继续解析你可以像以前一样注册一个错误处理程序,除了你必须指定accept作为处理

c++ - VS2008 : Disable warnings in included header files outside the project

这可能吗?我不想全局禁用警告,因为我想检查我自己的头文件是否有警告。 最佳答案 您可以禁用有关包含外部头文件的警告:#pragmawarning(push)#pragmawarning(disable:thewarning)//includehere#pragmawarning(pop)如果您需要多次包含标题,您可以使用编译指示创建一个标题并将其包含在内。问了同样的问题here. 关于c++-VS2008:Disablewarningsinincludedheaderfilesoutsi

c++ - 如何在应用程序中更改 Windows ANSI api 的 CP_ACP(0)?

我尝试使用仅具有ANSI版本接口(interface)的dll库绘制文本,封装了windowsANSIapi,但我需要使用utf-8存储字符串数据。我不想使用MultiByte/WideChar函数转换字符串,所以我想要一种方法来更改我的应用程序中的CP_ACP,以便我可以将字符串数据输入到ANSIapi中。谢谢。ps:我不想更改系统默认代码页。 最佳答案 CP_ACP表示系统Ansi代码页。您不能在每个进程或每个线程的基础上更改它。这是一个系统范围的设置。如果DLL确实在内部依赖于CP_ACP,那么您别无选择,只能在与DLL交互时

c++ - C 结构元素对齐 (ansi)

只是一个简单的问题...标准对结构成员对齐有何规定?例如这个:struct{uint8_ta;uint8_tb;/*othermembers*/}test;可以保证b位于从结构开始的偏移量1处吗?谢谢 最佳答案 标准(从C99开始)并没有真正说明什么。唯一真正的保证是(void*)&test==(void*)&a,并且a的地址低于b。其他一切都取决于实现。 关于c++-C结构元素对齐(ansi),我们在StackOverflow上找到一个类似的问题: http

c++ ansi转义码不向控制台显示颜色

我正在尝试更改控制台中文本的颜色。我们应该使用配置文件从以下位置读取ansi转义码:这是我的文件red\033[0;31m#redblue\033[0;34m#bluegreen\033[0;32m#greengrey\033[0;37m#grey这是我的代码:#include#include#include#include#include#includeusingnamespacestd;intmain(intargc,char*argv[]){stringfile="config.txt";stringline="";stringtag="";stringansi="";mapm;

c++ - 使用 cmake 添加 _CRT_SECURE_NO_WARNINGS 定义

是否可以使用cmake添加_CRT_SECURE_NO_WARNINGS预处理器定义?add_definitions(-CRT_SECURE_NO_WARNINGS)add_definitions(-_CRT_SECURE_NO_WARNINGS)add_definitions(_CRT_SECURE_NO_WARNINGS)这些是我到目前为止尝试过的。这些尝试都没有成功。 最佳答案 使用这个:if(MSVC)add_definitions(-D_CRT_SECURE_NO_WARNINGS)endif()参见here获取官方文档。

c++ - 如何使用标准 C++ 从 UTF-8 转换为 ANSI

我从数据库中读取了一些字符串,以char*和UTF-8格式存储(你知道,“á”被编码为0xC30xA1)。但是,为了将它们写入文件,我首先需要将它们转换为ANSI(不能以UTF-8格式制作文件......它只能读取为ANSI),这样我的“á”就不会成为一个”。是的,我知道一些数据会丢失(中文字符,通常是ANSI代码页中没有的任何内容),但这正是我需要的。但问题是,我需要代码在各种平台上编译,所以它必须是标准的C++(即没有Winapi,只有stdlib、STL、crt或任何具有可用源的自定义库)。有人有什么建议吗? 最佳答案 几天前

c++ - 为什么编译器在我定义了 _CRT_SECURE_NO_WARNINGS 之后仍然警告我不安全的 strtok?

我正在使用适用于Windows桌面的VisualStudioExpress2012。我总是出错ErrorC4996:'strtok':Thisfunctionorvariablemaybeunsafe.Considerusingstrtok_sinstead.Todisabledeprecation,use_CRT_SECURE_NO_WARNINGS.Seeonlinehelpfordetails.当我尝试构建以下内容时:#include"stdafx.h"#define_CRT_SECURE_NO_WARNINGS#include#includeusingnamespacestd;

c++ - 如何使用 ANSI Escape 代码在控制台上输出彩色文本

我读到了ANSI-C转义码here.尝试在C/C++printf/cout中使用它来为输出到consolde的文本着色,但没有成功。代码:#include#includeintmain(){inta=3,b=5;int&ref=a;ref=b;//cout如何使用这些转义码将彩色文本输出到控制台?我错过了什么吗?编辑:在一些C++代码中,我看到了对这个函数的调用textcolor(10);但它在g++和VisualStudio中给出了编译错误。哪个编译器有这个功能?有详细信息吗? 最佳答案 恐怕你忘记了ESC字符:#includei

c++ - 为什么 GCC 允许在 C++ 中使用 round() 即使带有 ansi 和 pedantic 标志?

即使使用-ansi和-pedantic标志,这个程序在GCC下编译是否有充分的理由?#includeintmain(intargc,char*argv[]){doublex=0.5;returnstatic_cast(round(x));}使用g++-ansi-pedantic-Walltest.cpp-otest编译干净(甚至没有警告)。我看到两个问题:round()不应该在符合ISO的模式下对C++可用(因为它来自C99)即使round()在这种情况下可用,它也只能在std命名空间中可用我错了吗? 最佳答案 Thisisabug