引用头文件顺序问题 error C2039】的更多相关文章

建的WTL工程,用到CString和DataExchange 因为WTL和ATL都有对CString的定义 当先包含 atlstr.h 再包含 atlddx.h 时会出现以下错误 error C2039: 'CString' : is not a member of 'WTL' c:\program files\microsoft visual studio 10.0\vc\wtl\atlddx.h 解决办法是先包含 atlddx.h 再包含 atlstr.h ,详细原因待分析.…
问题情况如下,因个人水平有限,不知道具体原因是啥,当引用头文件<iostream>时会出现如下问题,经排查,并不是头文件本身的问题,有可能是Dev哪一个文件被改动了,或者设置出了问题(前者概率更大)还有一个可能就是Windows和Dev存在小小的不合(仅代表个人观点),不多说方法如下解决方法: 去正规渠道下载新的安装包,假如你对自己的安装包有信心可以用自己原先下载好的 点击安装包进行安装,选择安装路径(安装地址)的时候,尽量选择一个较大的硬盘 完成安装就可以直接使用了 推荐下载链接: http…
转自:http://blog.csdn.net/clever101/article/details/7269058关键总结:先包含的头文件的函数会覆盖后包含的头文件的同名函数.建议采用Google C++ 编程风格指南:先包含test.cpp的test.h, 然后依次是:C标准库.C++标准库.其它库的头文件.你自己工程的头文件 一.<Google C++ 编程风格指南>里的观点 公司在推行编码规范,领导提议基本上使用<Google C++ 编程风格指南>.其中<Google…
在很多时候我们把网站公共的js.css文件放在模板页中,这样在具体的每一个页面里面就不需要单独引用. ASP.NET WebForm里面使用.site文件. 而在ASP.NET MVC 中使用了类似下面的定义 _Layout.cshtml: <!DOCTYPE html> <html> <head> <title>@ViewBag.Title</title> <link href="@Url.Content("~/Con…
javah生成jni头文件时报错: Error: cannot access android.support.v7.app.AppCompatActivity class file for android.support.v7.app.AppCompatActivity not found Error: cannot access android.support.v4.app.FragmentActivity class file for android.support.v4.app.Fragm…
现在很多人都会使用CocoaPods来管理自己使用的第三方开源代码,这两天我的工程中碰到了这样一个问题,当我使用CocoaPods来进行三方源码的引入,但是在实际的工程当中引入出现了这样一个问题,就是头文件找不到!!!头文件居然找不到!!!可是他明明好好的躺在那里啊,为什么找不到,这时候想到肯定是路径或者引用的问题. 研究了半天,终于摸到了门路,流程就是PROJECT -> info -> Configurations ->Debug/Release -> AppTests 后面的…
1.创建头文件和源文件 touch /tmp/tools.h touch /tmp/main.cpp 2.各文件的内容如下: tools.h #include<iostream> void print_hello_world() { std::cout<<"hello world ..."<<std::endl; } main.cpp #include<iostream> #include<cstdlib> #include…
1.首先,在代码文件头部使用#include来包含任何头文件(扩展名为.h或者.hpp的文件)都不会“产生”额外的函数. 我们可以说,包含一个头文件之后,该头文件内部已经定义的一些变量,宏,函数等等资源,将可以在后面的代码中可以直接拿来使用,比如,当我们包含process.h之后,就可以在代码中使用system()函数来调用系统控制台的命令,比如cls,.pause等等. 同理,包含了windows.h之后,在该文件中定义的一些资源我们可以直接使用,其中包括大部分的Win32 API函数,以及一…
Qt里面引入头文件的两种方式: 1. #include <QMdiArea> #include<QSplashScreen> 2. QT_BEGIN_NAMESPACE class QMdiArea; class QSplashScreen QT_END_NAMESPACE 关于QT_BEGIN_NAMESPACE 和QT_END_NAMESPACE 比较好的解释: 比较好的解释: QT_BEGIN_NAMESPACE其实就是个宏,以前Qt4是没有Qt命名空间的,后来才加上的,编译…
使用cocoasPod做第三方类库管理非常方便,但是在使用的过程之中会遇到一些小问题!比如初次使用会遇到 引入类库,说找不到文件 target--build settings---user search path----user head search path 添加 ${SRCROOT} 后面选择 recursive…
最近在做一个U-BOOT相关的项目,经过几天的折腾最终放弃使用VIM和一堆附加插件.最终的出的结论是对于中大型工程项目还是要启用一些专业的IDE比较稳妥,尽管VIM提供的各种插件累加在一起足以实现专业IDE的功能,但对于项目管理的复杂程度有所增加.总之一句话,尺有缩长,寸有缩短,按需求选择吗.不可否认的是,VIM对于SLOC小于10K的项目还是比较适用的,因为其灵活性和可控性真的让人忍不住用了还想用. 贴一张Eclipse图,配合GDB+OpenOCD+JLINK,调试起来非常方便.      …
#include "one.h" #include "two.h" int main(int argc, const char * argv[]) { one(); two(); ; }…
基于官方arc-stable-9c57d86f66be,AUTOSAR版本3.1.5   基本问题 1. 头文件引用混乱,所有头文件通过从搜索路径(-I)中引用,存在名称污染问题,需加入路径信息:   ArcCore代码的编译系统中,定义了大量的inc-y路径,最后使用-I参数将这些路径加入到编译器的命令行参数中.而代码文件中,引用头文件时都是直接使用 #include "xxx.h" 的形式.   这样有几个问题: 1. 编译系统负担过重,需要加入大量的头文件搜索路径: 2. 导致头…
写在前面 老胡最近在工作中,有个场景需要使用一个第三方库,引用头文件,链接库,编译运行,一切都很正常,但是接下来就遇到了一个很诡异的问题,调用该库的中的一个对象方法为对象修改属性的时候,会影响到对象的另外一个属性,当时百思不得其解,直呼灵异事件. 但后面静下心来细细看了一下代码和各种配置,发现了问题所在,现在把这个问题分享在这里,希望大家在以后的工作中如果遇到了类似的情况知道应该如何处理. 场景还原 库 当时引用的是一个第三方的静态链接库,场景非常简单,在项目中包含头文件,链接器指定路径和静态库…
http://www.cnblogs.com/ShaneZhang/archive/2013/05/20/3088688.html 从工程上讲,头文件的文件名应该与对应的源文件名相同便于维护,如果头文件中包含了多个源文件中的定义或声明,则应该按源文件分组布局头文件中的代码,并且通过注释注明每组所在的源文件.当一个工程的文件较多时应该将源文件与头文件分开目录存放,一般头文件存放在include或inc目录下,而源文件存放在source或src目录下,根据经验,一个工程的文件数超过30个时应该将源文…
一般来说,每一个.cc或者.cpp文件对应一个头文件(.h文件),当然,也有例外,例如一些测试单元或者main文件,头文件的一些规范可以令代码可读性.程序的性能等大为改观,所以还是要注意头文件的规范问题. 一.#define保护 所有头文件为了防止文件被多重包含(multiple inclusion),一般就需要#define保护.#define保护的格式如下: <PROJECT>_<PATH>_<FILE>_H_ 例如: #ifndef FOO_BAR_BARZ_H_…
C 头文件 头文件是扩展名为 .h 的文件,包含了 C 函数声明和宏定义,被多个源文件中引用共享.有两种类型的头文件:程序员编写的头文件和编译器自带的头文件. 在程序中要使用头文件,需要使用 C 预处理指令 #include 来引用它.前面我们已经看过 stdio.h 头文件,它是编译器自带的头文件. 引用头文件相当于复制头文件的内容,但是我们不会直接在源文件中复制头文件的内容,因为这么做很容易出错,特别在程序是由多个源文件组成的时候. A simple practice in C 或 C++…
我发现类在做参数时,是可以不引用头文件,即不用#include"xxx.h"的,比如下面这样是没有问题的 #pragma once #include <string> #include <iostream> class Humankind; class Person { public: Person(); void sayHello(Humankind human); }; 但如果这个类是用来被继承,就编译不过,必须写头文件包含,即这样: #pragma onc…
1.引用头文件 标准头文件       #include <iostream> 自定义头文件   #include "complex.h" 2.防卫式(guard)声明 //以complex.h为例 #ifndef __COMPLEX__ #define __COMPLEX__ /* * * * */ #endif…
单文件引用头文件./ 当前目录 ../ 父级目录 / 根目录              多文件引用头文件多文件引用头文件 定义单独放在cpp文件里面 ,声明放在().h)里面…
用include 引用头文件时,双引号和尖括号的区别: 1.双引号:引用非标准库的头文件,编译器首先在程序源文件所在目录查找,如果未找到,则去系统默认目录查找,通常用于引用用户自定义的头文件. 2.尖扩号:只在系统默认目录(在Linux系统中通常为/usr/include目录)或者尖括号内的路径查找,通常用于引用标准库中自带的头文件. 综上,标准库自带的头文件既可以用双引号也可以用尖括号,不过习惯使用尖括号,用户自定义的头文件只能用双引号. 一般情况下 这么用:自己写的用双引号,第三方库或者系统…
1.预处理器: 预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤.简言之,C 预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理. 我们将把 C 预处理器(C Preprocessor)简写为 CPP. 所有的预处理器命令都是以井号(#)开头.它必须是第一个非空字符,为了增强可读性,预处理器指令应从第一列开始.具体的列表可以在网上找到,这里不再复述. a.几个常用的: #define MAX_ARRAY_LENGTH 20  (所有的MAX_ARR…
预处理器 参考链接:https://www.runoob.com/cprogramming/c-preprocessors.html 预处理器是再变异之前做的一些工作 include 包含一个源文件代码 常见的有#include <stdio.h>就是从系统库中获取stdio.h,并添加到当前文本中.而#include "header.h"则是告诉预编译器(cpp)从当前目录中添加header.h文件到当前文本中 defind定义宏 宏的意思就类似一个谁都知道的常量如 #d…
声明:            本人自学C++, 没有计算机基础,在学习的过程难免会出现理解错误,出现风马牛不相及的现象,甚至有可能会贻笑大方. 如果有幸C++大牛能够扫到本人的博客,诚心希望大牛能给予批评与指正!不胜感激!            学习的过程分为初识.入门.进阶三个阶段.            因为对C++没有什么了解,这样的学习设定可能也有失准确性.望兄弟们多指点.谢谢! 目录:科普---- 引用头文件1. 引用头文件的作用2. 头文件的结构及作用3. 常用C++头文件及描述4.…
头文件 头文件是扩展名为 .h 的文件,包含了 C 函数声明和宏定义,被多个源文件中引用共享.有两种类型的头文件:程序员编写的头文件和编译器自带的头文件. 在程序中要使用头文件,需要使用 C 预处理指令 #include 来引用它.前面我们已经看过 stdio.h 头文件,它是编译器自带的头文件. 引用头文件相当于复制头文件的内容,但是我们不会直接在源文件中复制头文件的内容,因为这么做很容易出错,特别在程序是由多个源文件组成的时候. A simple practice in C 或 C++ 程序…
C++primer(第五版)1.51练习章节需要有一个Sales_item类,但是给的网站找不到,直接复制下面就好咯: #ifndef SALESITEM_H #define SALESITEM_H #include <iostream> #include <string> class Sales_item { public: Sales_item(),revenue(0.0){} Sales_item(std::istream &is){ is >> *thi…
今天做项目时,直接拷贝了另一个工程里的头文件和源文件,然后运行时就出现这种问题,莫名其妙,在原程序里运行一点问题就没有,但是在新工程里就是error. >e:\c++\button_fly2\button_fly2\gdipbutton.cpp(): error C2065: “ColorMatrix”: 未声明的标识符 >e:\c++\button_fly2\button_fly2\gdipbutton.cpp(): error C2146: 语法错误: 缺少“;”(在标识符“HotMat”…
一.<Google C++ 编程风格指南>里的观点 公司在推行编码规范,领导提议基本上使用<Google C++ 编程风格指南>.其中<Google C++ 编程风格指南>对于头文件的包含顺序是这样的: Names and Order of Includes link ▽Use standard order for readability and to avoid hidden dependencies:C library, C++ library, other lib…
我在客户端clg.h头文件中引用了头文件“ClientSocket.h”,然后在客户端clg.h中的类中声明了类CClientSocket的对象,可是编译报错:d:\vc++\客户端\客户端dlg.h(44) : error C2146: syntax error : missing ';' before identifier 'm_clientSocket'd:\vc++\客户端\客户端dlg.h(44) : error C2501: 'CClientSocket' : missing sto…
对C++和VS2010非常不熟悉,但是无奈赶着项目,只能看了点基础就上手,然后就碰到这个问题了. 原因分析: http://bbs.csdn.net/topics/340191697?page=1 编译器一般都是以文件为单位进行编译,如果修改了工程中的一个文件,那么将导致所有文件都要从新编译,这样的编译将耗费很长时间.      为了提高编译速度,将那些不常被修改,比较稳定,文件单独包含到一个指定的头文件中, 然后生成一个预编译头文件 *.pch . VC中默认的头文件为 stdAfx.h, 但…