Win32:引用头文件
1、首先,在代码文件头部使用#include来包含任何头文件(扩展名为.h或者.hpp的文件)都不会“产生”额外的函数。
我们可以说,包含一个头文件之后,该头文件内部已经定义的一些变量,宏,函数等等资源,将可以在后面的代码中可以直接拿来使用,比如,当我们包含process.h之后,就可以在代码中使用system()函数来调用系统控制台的命令,比如cls,、pause等等。
同理,包含了windows.h之后,在该文件中定义的一些资源我们可以直接使用,其中包括大部分的Win32 API函数,以及一些Win32宏。具体文件内容你可以找到“C:\Program Files\Microsoft Visual Studio\VC98\Include\WINDOWS.H”(假设你安装的是VC6,且装在C盘。安装其他版本或者安装在其他目录请以此类推),使用文本编辑器自行察看。
2、包括 SDKDDKVer.h 将定义可用的最高版本的 Windows 平台。
如果要为以前的 Windows 平台生成应用程序,请包括 WinSDKVer.h,并将
WIN32_WINNT 宏设置为要支持的平台,然后再包括 SDKDDKVer.h。
3、__cplusplus与extern "C" (2008-08-28 21:16)
分类: 单片机和C语言
Microsoft-Specific Predefined Macros
__cplusplus Defined for C++ programs only.
上面的意思是说,如果是C++程序,就使用(即定义__cplusplus);
extern "C"{
而这句话,是指在下面的函数不使用的C++的名字修饰,而是用C的
使用上面语句大多出现在交叉C编译环境中,其原因是:
C++语言在编译的时候为了解决函数的多态问题,会将函数名和参数联合起来生成一个中间的函数名称,而C语言则不会,因此会造成链接时找不到对应函数的情况,此时C函数就需要用extern “C”进行链接指定,这告诉编译器,请保持我的名称,不要给我生成用于链接的中间函数名.
__cplusplus与extern "C"的使用解决了C语言函数与C++函数之间的调用问题
The following code shows a header file which can be used by C and C++ client applications:
// MyCFuncs.h
#ifdef __cplusplus
extern "C" { // only need to export C interface if
// used by C++ source code
#endif
__declspec( dllimport ) void MyCFunc();
__declspec( dllimport ) void AnotherCFunc();
#ifdef __cplusplus
}
#endif
上面的程序可解释为:
如果在编译时定义了__cplusplus
那么编译器编译的代码文本就是:
extern "C" {
int sum(int num1,int num2);
int mult(int num1,int num2);
}
如果编译时没有定义__cplusplus
就是:
int sum(int num1,int num2);
int mult(int num1,int num2);
Win32:引用头文件的更多相关文章
- 关于Dev-C++一种引用头文件<iostream>问题(暴力解决)
问题情况如下,因个人水平有限,不知道具体原因是啥,当引用头文件<iostream>时会出现如下问题,经排查,并不是头文件本身的问题,有可能是Dev哪一个文件被改动了,或者设置出了问题(前者 ...
- ASP.NET MVC 在子页中引用头文件
在很多时候我们把网站公共的js.css文件放在模板页中,这样在具体的每一个页面里面就不需要单独引用. ASP.NET WebForm里面使用.site文件. 而在ASP.NET MVC 中使用了类似下 ...
- 使用CocoaPods,文档中出现引用头文件找不到的问题。
现在很多人都会使用CocoaPods来管理自己使用的第三方开源代码,这两天我的工程中碰到了这样一个问题,当我使用CocoaPods来进行三方源码的引入,但是在实际的工程当中引入出现了这样一个问题,就是 ...
- C++----练习--引用头文件
1.创建头文件和源文件 touch /tmp/tools.h touch /tmp/main.cpp 2.各文件的内容如下: tools.h #include<iostream> void ...
- Qt 引用头文件 QT_BEGIN_NAMESPACE QT_END_NAMESPACE
Qt里面引入头文件的两种方式: 1. #include <QMdiArea> #include<QSplashScreen> 2. QT_BEGIN_NAMESPACE cla ...
- cocoaspod使用 引用头文件找不到
使用cocoasPod做第三方类库管理非常方便,但是在使用的过程之中会遇到一些小问题!比如初次使用会遇到 引入类库,说找不到文件 target--build settings---user searc ...
- eclipse引用头文件报错问题-解决方法
最近在做一个U-BOOT相关的项目,经过几天的折腾最终放弃使用VIM和一堆附加插件.最终的出的结论是对于中大型工程项目还是要启用一些专业的IDE比较稳妥,尽管VIM提供的各种插件累加在一起足以实现专业 ...
- 引用头文件顺序问题 error C2039
建的WTL工程,用到CString和DataExchange 因为WTL和ATL都有对CString的定义 当先包含 atlstr.h 再包含 atlddx.h 时会出现以下错误 error C203 ...
- C语言 Include指令(引用头文件)
#include "one.h" #include "two.h" int main(int argc, const char * argv[]) { one( ...
随机推荐
- Cisco KVM Console无法打开
前阵子手贱, 每次弹出的Java的update的对话框我都是直接关闭的, 那天实在是不忍再受骚扰, 升级到了Java 8. 结果Cisco的KVM就死活打不开了, 报错如下: Exception: c ...
- jQuery多媒体播放器插件jQuery Media Plugin使用方法
jQuery Media Plugin是一款基于jQuery的网页媒体播放器插件,它支持大部分的网络多媒体播放器和多媒体格式,比如:Flash, Windows Media Player, Real ...
- 俄罗斯水手 [C#] 对List<T>取交集、连集及差集
※本文使用int為例,若為使用自訂之DataModel,需實作IEquatable<T>介面才能使用 1. 取交集 (A和B都有) List A : { 1 , 2 , 3 , 5 , ...
- Volley框架的介绍使用
Volley是在2013年的Google I/O 2013大会上发布的,是我们的网络通信更快,更简单,更方便.对于初学者来讲是一个很好的框架. 简单来说,它提供了如下的便利功能: JSON,图像等的异 ...
- js获取checkbox中所有选中值及input后面所跟的文本
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- WordPress 无法使用the_content()方法输出内容
在使用WordPress里在一个页面里我使用the_content()方法来输出当前页面的内容,但却显示为空,而标题,url等都没有问题 在网络上好像遇到这种情况的人很少只找到了一个说是可能是func ...
- 3. Layout -- 1
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orient ...
- [android错误] Installation error: INSTALL_FAILED_VERSION_DOWNGRA
错误表现: [2014-06-27 18:19:51 - XXX] Installing XXXX.apk... [2014-06-27 18:20:00 - XXX] Installation er ...
- ZOJ 2319 Beautiful People
LIS.先按S降序升序再按B降序排序(如果B不按降序排序的话就会覆盖掉正解),然后再对B用O(nlog(n))的LIS求解就可以了.用d数组标记每个元素在上升序列中的位置,然后根据d倒着找id就可以了 ...
- php之快速入门学习-2
创建(声明)PHP 变量 PHP 没有声明变量的命令. 变量在您第一次赋值给它的时候被创建: <?php $txt="Hello world!"; $x=5; $y=10.5 ...