zoukankan      html  css  js  c++  java
  • 《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操作系统要复杂得多。

  • 相关阅读:
    分布式文件系统 FastDFS
    Autoit里用多进程模拟多线程
    请不要做浮躁的人(新手必读!)
    如何用AU3调用自己用VC++写的dll函数
    DLL编写教程
    win32下的命令行集合 (最优秀的工具)
    autoit 《FAQ 大全》
    Windows XP 常用DOS命令
    rundll32 常用命令
    批处理的高级运用技巧
  • 原文地址:https://www.cnblogs.com/lgh1992314/p/5835172.html
Copyright © 2011-2022 走看看