草庐IT

mh_execute_header

全部标签

c++ - Visual Studio 的预编译 header 包含什么?

问题涉及VisualStudio编译器创建的.pch二进制文件的内容。它包含什么?它只是头文件的解析树,还是目标代码?考虑这个例子://myheader.h#includeclassA{public:voidadd(inti){v.push_back(i);}private:std::vectorv;};将此header包含在要预编译的集合中会导致vector的完整模板实例被编译并添加到.pch中吗?提供更多背景信息;如果只有解析树被预编译,这意味着实例化模板的目标代码仍将在每个编译单元创建一次,从而导致编译和链接时间增加。因此,即使启用了预编译header,“统一构建”/减少编译单元

c++ - 如何在大约 v2.8.8 的 cmake 中轻松包含来自库依赖项的 header

我正在对C++存储库使用CMake进行一些试验,但我遇到了一些麻烦,试图在不使用大量额外CMake代码的情况下轻松地针对同一源代码树中的库构建应用程序。源码树的布局基本如下:ROOTlibs/lib1/lib2/lib3/apps/app1/app2/app3/库相互独立,应用程序可以链接到一个或多个库。目前我有一个根目录CMakeLists.txt,它将每个应用程序和库列为一个子目录,这样如果库被更改并且应用程序被重建,库也会被重建。这工作正常并且CMake链接它而无需我指定库所在的位置,但我没有看到对包含目录执行类似操作的方法。有没有通用的方法来处理这个问题?我不希望每个应用程序的

c++ - Visual Studio 2012 没有安装 C-Header?

我已经安装了VisualStudio2012并使用它工作了大约2周。但是现在我想开始一个C++项目(我通常是c#程序员)并且我写了一些简单的代码。之后我想编译它,但出现了很多错误……没有标准的c头文件。我做了什么:创建了一个新的Win32项目(空项目)使用这些创建的代码包括:#include#include#include#includeWindows.h是找到了,其余没有。有人有想法吗?我还查看了IncludeDirectories:$(VCInstallDir)include$(VCInstallDir)atlmfc\include$(WindowsSDK_IncludePath)

c++ - 比较算法的执行时间 : why does the order of execution matter?

每当我尝试比较两个竞争算法(使用C++)的执行时间时,我都会使用std::chrono作为以前在这个问题中建议的示例:MeasuringexecutiontimeofafunctioninC++但是,我总是注意到被比较算法的执行顺序对执行时间有显着影响。它甚至经常改变哪些竞争算法被认为是最快的。例如,假设我有两个算法algo1和algo2。我的意思是下面的代码:std::chrono::high_resolution_clock::time_pointstart0,start1;std::chrono::high_resolution_clock::time_pointend0,end

C++ - Zlib - header 和无 header 支持。有多可靠?

我目前正在开展一个大型项目,该项目可能每天使用C++中的zlib压缩/解压缩数千个文档。(我们的实现有zlib1.2.8)我们当前的实现支持带头和不带头的压缩文件,但是必须设置bool值“useZlibHeader”。我们的团队想知道是否有一种100%可靠的方法来确定header是否存在。根据此文档:https://www.ietf.org/rfc/rfc1950.txt据说“FCHECK值必须使得CMF和FLG,当被视为以MSB顺序存储的16位无符号整数(CMF*256+FLG)时,是31的倍数。”确实这是一个很好的检查,但有可能我们最终得到一个没有标题的压缩文件,但它的数据是(CM

C++ 错误 : Conversion to Execution Character set

问题是我试图在ASCII之外打印一些字符,例如德语变音字符、“ß”等。这些字符不适合普通的char变量,所以显然我试图将它们放在wchar_t中并用L"...."初始化字符串。但是每当这个字符串包含上面的一个字符时,我都会得到提到的错误,但是对于ASCII的所有其他字符都没有问题。u"....",U"......"也会发生这种情况,如果我使用u8"......"它不会产生错误但会打印垃圾。所以问题:如何从ASCII集之外打印这些字符和其他字符?无论如何,这个错误是什么意思?我可以打印字符的唯一方法是调用setlocale()将语言环境设置为环境默认值(德语),然后通过简单地创建一个包含

c++ - 将 header 添加到项目设置中的每个文件(gcc -include)

我有一个项目使用gcc-includefile.h正如gcc文档所说,这确保了file.h包含在以这种方式编译的每个文件中(这意味着每个其他文件中都有#include"file.h")。现在我已经将这个项目导入到eclipse中,我在该文件所在的位置设置了包含路径,但无法弄清楚如何在eclipse项目设置中执行类似gcc-include的操作。这样做的结果是,在编辑器中我有很多“符号xy无法解析”,但项目编译得很好。感谢您的帮助。 最佳答案 您可以逐个项目更改CDTGCC内置编译器设置。转到项目->Properties->C/C++

C++使用 header 定义的模板类乘以定义的符号

我正在visualstudio2005中开发一个包含DLL和EXE的项目。DLL的代码中有一个可增长数组类的模板:templateclassGArray{Type*p;uint32len;uint32alloc;protected:boolfixed;public:///ConstructorGArray(intPreAlloc=0){p=0;len=0;fixed=false;alloc=PreAlloc;if(alloc){intBytes=sizeof(Type)*alloc;p=(Type*)malloc(Bytes);if(p){memset(p,0,Bytes);}else

c++ - 是否有任何示例代码可以从 Jpeg exif header 中读取缩略图?

我在Windows中使用C++编写应用程序。我想从jpeg中获取缩略图,而不对整个图像进行解码。如何从jpegexifheader中读取缩略图?谁能给我一些示例代码?非常感谢! 最佳答案 不出所料,该库名为libexif有win32端口,并且有readingthubnailfromfile的示例代码 关于c++-是否有任何示例代码可以从Jpegexifheader中读取缩略图?,我们在StackOverflow上找到一个类似的问题: https://stack

c++ - 将 using tr1::shared_ptr 放在 header 中的命名空间 std 中是否合法?

使用std::tr1::shared_ptr作为std::shared_ptr放置using指令是否合法和良好的编程风格标题?像这样:namespacestd{usingtr1::shared_ptr;}我知道污染整个命名空间是不好的,但这种情况呢?有没有隐藏的陷阱?目标编译器是VS2008,但也希望与更高版本兼容。 最佳答案 从技术上讲,如果您这样做,标准表示您进入了未定义行为的领域:17.6.4.2.1命名空间标准[namespace.std]1ThebehaviorofaC++programisundefinedifitadds