• c++ 使用vs2010调用 win32api


    原文:http://www.cnblogs.com/Bonker/archive/2013/06/24/3152570.html

    以前读书时都是用vc6.0.后来学c#用vs。装系统只装了vs2010.今天用vs2010写c++程序。发现有点陌生。就总结下,免得以后忘记。


    首先用vs2010选择c++语言。新建一个win32控制台程序。项目打开后会发现stdafx.h,targetver.h,stdafx.cpp还有自己的winAPITest1.cpp文件。

    stdafx.h文件包含了stdio.h头文件。这个大家都明白。标准的c语言库。也就是说可以直接在_tmain函数里面直接调用printf函数。

    tchar.h文件包含很多宏。#define _tmain      wmain。_tmain其实是wmain。


    引用头文件

          1,引用头文件可以用<括号,也可以用“; <尖括号的方式包含的文件,预处理器通常会在特定的系统路径下搜索。”双引号则先在程序根目录寻找,找不到然后在系统目录找。

         不过最好系统的api用<,本地的使用”。因为这样vs会有提示。

         2,关于有些引用不带.h。例如 在vs 2010中用include<iostream.h>就不行,而用include<stdio.h>就可用.

         原因:

    1、要区分标准C的库和标准C++的库。iostream是C++的库,stdio.h是标准C的库。

    2、新的C++标准摒弃了.h形式的头文件,所以在vs2005里面是没有iostream.h的头文件的。

    3、在早期的vs版本,比如VC6.0,用的还是老版本的C++标准库,例如iostream.h,并且当时标准库也没有引入名字空间。因此直接#include <iostream.h>是可以的。但到了vs2005,使用了新的C++标准库,只能用#include <iostream>。

    4、名字空间里可以包含很多东西,比如函数名、标识符、数据类型等等。新的C++标准把标准库中的名字都放入了std名字空间,因此在#include <iostream>之后,还必须使用标准库的名字空间std,才能使用标准库里的类和函数,也就是必须 using namespace std;

    5、对于C的标准库,例如,stdio.h,没有名字空间的概念,因此直接包含后即可使用。

    6、新的C++标准库为了统一以前的C标准库,将原来c的标准库也放入了std名字空间,并把原来的C标准库去掉了.h后缀,前面加上字母“c”,例如stdio.h就变成了cstdio,使用时为#include <cstdio>,其内容和#include <stdio.h>相同,但是要额外使用名字空间std,也就是using namespace std;

    7、因此,对于新的C++标准库,没有了.h形式的头文件,例如iostream,在包含了头文件以后,必须使用std名字空间才能使用库中的内容。对于C标准库,有两种使用方法,一种是用老的.h形式,例如stdio.h直接包含就可以了;另一种就是用C++的统一形式,例如cstdio,和C++标准库一样,包含了以后还要加上using namespace std;才能使用。

    建议采用后面统一的形式,比如你要同时使用C和C++的库,可以这样写:
    #include <cstdio>
    #include <iostream>
    using namespace std;

    调用api

         

    #include "stdafx.h"
    #include <Windows.h>
    #include <iostream>
    using namespace std;
     
     
    int _tmain(int argc, _TCHAR* argv[])
    {
        SYSTEM_INFO system_Info;
        GetSystemInfo(&system_Info);
        cout<<system_Info.dwPageSize<<endl;
        system("pause");
        return 0;
    }

      

    system("pause");<br><br>是从程序里调用“pause”命令; <br><br><span style="line-height: 1.5;">而“pause”这个系统命令的功能很简单,就是在命令行上输出一行类似于“Press   any   key   to   exit”的字,等待用户按一个键,然后返回。</span>
  • 相关阅读:
    在JS中,一切东东其实都是对象
    Java多维数组
    理解Java主函数中的"String[] args"
    Java中"String.equals()“和"=="的区别
    Java:新建数组
    [BOOKS]BIG DATA and DATA ANALYTICS: The Beginner's Guide to Understanding the Analytical World
    [BOOKS]Big Data: Principles and best practices of scalable realtime data systems
    Update Vim to 8.0 in Ubuntu
    Vim显示/不显示行号
    数组(R语言)
  • 原文地址:https://www.cnblogs.com/lizhigang/p/6929389.html
Copyright © 2020-2023  润新知