• 《windows程序设计》第一章学习心得


    <span style="font-family: Arial, Helvetica, sans-serif;">#include <windows.h></span>
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
    {
    	MessageBox(NULL, TEXT("Hello World"), TEXT("Hello"), 0);
    }

    windows.h囊括了很多其他windows头文件,下面是最重要也是最基本的头文件:

    WINDEF.H 基本数据类型定义。

    WINNT.H 支持UNICODE的类型定义。

    WINBASE.H 内核函数。

    WINUSER.H 用户界面函数。

    WINGDI.H 图形设备接口函数。


    #define WINAPI _stdcall

    __stdcall 是一种函数调用约定。

    WINAPI

    The calling convention for system functions.

    This type is declared in WinDef.h as follows:

    #define WINAPI __stdcall

    CALLBACKWINAPI, and APIENTRY are all used to define functions with the __stdcall calling convention. Most functions in the Windows API are declared using WINAPI. You may wish to use CALLBACK for the callback functions that you implement to help identify the function as a callback function.


    typedef void *PVOID;

    PVOID

    A pointer to any type.

    This type is declared in WinNT.h as follows:

    typedef void *PVOID;


    typedef PVOID HANDLE;

    HANDLE

    A handle to an object.

    This type is declared in WinNT.h as follows:

    typedef PVOID HANDLE;


    typedef HANDLE HINSTANCE;

    HINSTANCE

    A handle to an instance. This is the base address of the module in memory.

    HMODULE and HINSTANCE are the same today, but represented different things in 16-bit Windows.

    This type is declared in WinDef.h as follows:

    typedef HANDLE HINSTANCE;


    HINSTANCE hInstance;
    实例句柄,用来唯一标示该程序的。


    HINSTANCE hPrevInstance;
    通过查看hPrevInstance参数从而知道是否有它的其他实例在运行。32位WINDOWS下已经抛弃这一概念。


    LPSTR lpCmdLine;

    用来运行程序的命令行。


    int nCmdShow;
    用来指明程序如何显示。


    MessageBox

    int WINAPI MessageBox(
      _In_opt_ HWND    hWnd,
      _In_opt_ LPCTSTR lpText,
      _In_opt_ LPCTSTR lpCaption,
      _In_     UINT    uType
    );

    HWND hWnd
    窗口句柄
    LPCTSTR lpText
    将要在信息框显示的信息
    LPCTSTR lpCaption
    标题栏上显示的文本
    UINT uType
    显示按钮的设置


    winnt.h


    #ifndef VOID
    #define VOID void
    typedef char CHAR;
    typedef short SHORT;
    typedef long LONG;
    #if !defined(MIDL_PASS)
    typedef int INT;
    #endif
    #endif


    typedef CHAR * PCHAR, * LPCH, * PCH, * NPSTR, * LPSTR, * PSTR ;        
    typedef CONST CHAR * LPCCH, * PCCH, * LPCSTR, * PCSTR ;        
    

    typedef WCHAR * PWCHAR, * LPWCH, * PWCH, * NWPSTR, * LPWSTR, * PWSTR ;        
    typedef CONST WCHAR * LPCWCH, * PCWCH, * LPCWSTR, * PCWSTR ;        
    

    #ifdef  UNICODE 
    typedef WCHAR TCHAR, * PTCHAR ;
    typedef LPWSTR LPTCH, PTCH, PTSTR, LPTSTR ; 
    typedef LPCWSTR LPCTSTR ;      
    #else
    typedef char TCHAR, * PTCHAR ;  
    typedef LPSTR LPTCH, PTCH, PTSTR, LPTSTR ; 
    typedef LPCSTR LPCTSTR ;   
    #endif
    

    Windows程序设计是探讨在Windows操作系统这个平台上如何设计程序,从本质上讲是在研究如何通过操作系统的接口,利用操作系统的运行机制与操作系统交互,充分挖掘操作系统的潜力,写出满足我们要求的程序。

    从这一点上说,Windows带有窗口的程序设计与传统黑屏的命令行程序设计性质是一样的,只不过Windows操作系统要复杂得多。

  • 相关阅读:
    AJAX跨域问题解决方法(3)——被调用方解决跨域
    AJAX跨域问题解决方法(2)——JSONP解决跨域
    AJAX跨域问题解决方法(1)——禁止浏览器进行跨域限制
    AJAX跨域问题解决思路
    产生AJAX跨域问题的原因
    WebStorm配置Vue开发环境
    (2012年旧文)纪念史蒂夫乔布斯---IT界的普罗米修斯
    嵌入式平台组件白盒测试gcov、lcov和genhtml 使用指导
    嵌入式平台使用gtest进行白盒测试
    【转】Python中执行cmd的三种方式
  • 原文地址:https://www.cnblogs.com/lgh1992314/p/5835172.html
Copyright © 2020-2023  润新知