草庐IT

c++ - 为什么我们应该为字符串数据类型导入#include <string> 而不是为其他类型导入?

我是C++的新手,我注意到在处理字符串时您应该包括:#include我的问题是为什么这是必要的,而不是像intfloat等基本类型?谢谢 最佳答案 看来您来自Python或Javascript背景,其中String是一种原始数据类型。在C++中并非如此,原始类型(在C++中称为基本类型)中没有String。但是int,float属于基本类型。在C++中,string是属于复合类型(相对于基本类型)类别的类类型。有关C++类型系统的概述,您可以阅读此referenceontypes. 关于

c++ - 为什么我的 Visual Studio Win32 项目需要安装 .NET 3.5 SP1?

使用VisualStudio2008,我创建了一个C++Win32项目。为了发布该程序,我在同一解决方案中创建了一个VisualStudio安装项目。setup.exe提示我的用户安装.NET3.5SP1,这通常需要15分钟以上的安装时间,并且只允许管理员级别的帐户使用。如果他们不这样做,就会出现类似于“错误框架”的错误。我对我的项目中需要.NET3.5SP1的内容感到困惑。我怀疑只是因为那是我的PC所使用的框架...有没有办法扩大它将运行的框架?代码主要是Win32API调用。为了以防万一,这是我的依赖项和#includes:gdiplus.libcomctl32.libWinmm.

c++ - 如何使用 pantheios 登录到文件?

我尝试使用pantheios中的示例来记录到一个文件,但无法使其正常工作。消息正确显示在控制台中,但未创建日志文件。自从我看到thread后,我试图更改严重级别,但没有人工作。代码如下:/*PantheiosHeaderFiles*/#include//PantheiosC++mainheader#include//forpantheios::args#include//forpantheios::exception#include//be.fileheader/*StandardC/C++HeaderFiles*/#include//forstd::exception#include

c++ - 为什么 iostream 包含 time.h?

考虑这段代码:#includetemplatestructtime{};intmain(){}它产生(GCC4.5):error:‘templatestructtime’redeclaredasdifferentkindofsymbol/usr/include/time.h:186:15:error:previousdeclarationof‘time_ttime(time_t*)’为什么iostream包括time_ttime(time_t*)?为什么iostream包括time_ttime(time_t*)外面std命名空间?(未回答)为什么,如果我删除template,我不会收到

c++ - 如何在 C 中#include 单行

显然有传言说可以在C中#include一行(可能使用gcc)例如#include5像第5行一样。在cpp文档中找不到类似的内容。或者哪些预处理器允许进行这样丑陋的黑客攻击?! 最佳答案 我从未听说过这样的功能,而且我肯定没有遇到任何支持它的预处理器。无论如何,这听起来真的是个坏主意。如果有人在file.h的顶部插入了一个空行怎么办...您会为这个更改破坏您的程序而高兴吗?如果您控制file.h,我认为最好的方法是将第5行提取到一个单独的标题中,然后将其#include都放入file中。h并进入您的主程序。

c++ - 如何在 Cygwin 和 MinGW 中告诉 C++ 库路径

我在WindowsXP上使用Cygwin安装开发C++程序。我还安装了MinGW,因为我想使用它的g++版本,而不是Cygwin附带的版本。该部分似乎设置正确。当我开始Cygwinsession时,我会看到:$whichg++/cygdrive/c/MinGW/bin/g++这是正确的,g++指向我的MinGW安装。我不明白的是,当我编写包含库代码的代码(例如,来自`Winsock/BerkleySocketsAPI的头文件)时,我如何知道编译器在哪里找到该头文件?例如,如果我的代码中有#include"winsock.h",编译器会在哪里找到该头文件?如果我在我的计算机上对winso

c++ - 使用外部库构建 Xcode 项目时出现链接器错误

我正在尝试在Xcode中构建一个非常简单的命令行应用程序,它将打印出有关MXF视频文件的基本信息。为此,我需要使用可在此处下载的libmxf、libbmx和libbmx库:http://sourceforge.net/p/bmxlib/home/Home/此时我的C++代码非常简单:#include#include#include#include#include#include#include#include#include#include#includeusingnamespacestd;usingnamespacebmx;#defineMXF_OPEN_READ(fn,pf)mxf

c++ - Qt 未解析的外部符号 LNK2019

我知道这个话题已经被讨论过了,但我真的找不到解决我问题的方法。我想用QDomDocument从XML文件中读取数据,但我得到了这种类型的错误:main.obj:-1:error:LNK2019:unresolvedexternalsymbol“__declspec(dllimport)public:classQDomElement__cdeclQDomNode::toElement(void)const“(__imp_?toElement@QDomNode@@QEBA?AVQDomElement@@XZ)referencedinfunction“void__cdeclListEleme

c++ - #include 标题在哪里?

我查找了头文件示例,但只能找到没有包含任何内容的简单示例。所以我的问题是,我在哪里可以#include诸如string和vector之类的东西?在.h或.cpp文件中?或者两者兼而有之? 最佳答案 任何你需要的地方。如果您需要在头文件中声明某些内容,请将它们包含在.h文件中。否则就在.cpp文件中。请注意,包含.h文件只是文本替换,包含的.h文件的内容将完全插入文件开头的位置。在#include行的精确点。在标准库的头文件之前包含一个属于项目的头文件是一种很好的做法,并且如果您不需要,则永远不要包含头文件。您应该记住的最后一件事是,

c++ - 在 C 项目中使用 Eigen

我正在做一个从Internet获得的C项目,我正在尝试向该项目添加一些涉及线性代数的函数。在我以前的C++工作中,我通常依赖Eigen来进行线性代数。有没有办法将Eigen用于C项目?如果是,我应该怎么做才能让它发挥作用?(仅仅添加Eigen头文件是不够的,因为例如标准C++文件不会自动包含在内) 最佳答案 Eigen是一个库,它大量使用C++中不存在的功能。因此,它不能直接从C翻译单元使用。但是,您可以将使用Eigen的部分包装在一个单独的共享库中,并公开一个C接口(interface)。这是一个如何编写这样一个库的小例子。图书馆