• Win32:引用头文件


    1、首先,在代码文件头部使用#include来包含任何头文件(扩展名为.h或者.hpp的文件)都不会“产生”额外的函数。

    我们可以说,包含一个头文件之后,该头文件内部已经定义的一些变量,宏,函数等等资源,将可以在后面的代码中可以直接拿来使用,比如,当我们包含process.h之后,就可以在代码中使用system()函数来调用系统控制台的命令,比如cls,、pause等等。

    同理,包含了windows.h之后,在该文件中定义的一些资源我们可以直接使用,其中包括大部分的Win32 API函数,以及一些Win32宏。具体文件内容你可以找到“C:Program FilesMicrosoft Visual StudioVC98IncludeWINDOWS.H”(假设你安装的是VC6,且装在C盘。安装其他版本或者安装在其他目录请以此类推),使用文本编辑器自行察看。

    2、包括 SDKDDKVer.h 将定义可用的最高版本的 Windows 平台。

    如果要为以前的 Windows 平台生成应用程序,请包括 WinSDKVer.h,并将
    WIN32_WINNT 宏设置为要支持的平台,然后再包括 SDKDDKVer.h。

    3、__cplusplus与extern "C"   (2008-08-28 21:16)
    分类: 单片机和C语言

    __cplusplus与extern "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);
     
  • 相关阅读:
    ElementUI的Upload上传,配合七牛云储存图片
    Vue : props 使用细节(父组件传递数据给子组件)
    vue弹窗插件实战
    vue实现单选多选反选全选全不选
    Vue.js新手入门指南
    ref 与 $refs 如何关联
    input框只允许输入正整数、正数(包含小数)的解决方法 vue.js实现
    Vue.js 使用 Swiper.js 在 iOS 11 时出现错误
    svn使用规范
    Android 动态设置控件获取焦点
  • 原文地址:https://www.cnblogs.com/shenchao/p/3142865.html
Copyright © 2020-2023  润新知