• windows程序设计基础知识


    Win32 API(Application Programming Interface)

    Win32 API可认为是一个程序库,提供各式各样的与windows系统服务有关的函数。

    Win32 API是最底层的服务,可调用Windows的各种服务。

    通常所说的SDK编程就是直接调用API函数进行编程。

    Win32 API是指编制32位应用程序时用的一组函数、结构、宏定义。在Win32的环境下,任何语言都是建立在Win32 API基础上的。C#等软件API隐藏的较深。

    大多数API位于三个核心的DLL中

    kernel32.dll、user32.dll、GDI32.dll

    采用其开发windows应用程序过于繁琐。

    API&MFC

    1、kernel

    在Win32中库名为KERNEL32.DLL,主要用于产生与操作系统之间的关联。

    程序加载

    上下文选择

    文件输入输出

    内存管理

    例如:GlobalMemoryStatus函数就是包括当前物理内存及虚拟内存的使用信息。

    2、user

    这个类库在Win32中名叫USER32.DLL

    它允许管理全部的用户接口。例如

    窗口

    菜单

    对话框

    图标等。

    例如,DrawIcon函数将在指定的设备关联上“画”出图标或者鼠标。

    3、GDI(Graphical Device Interface)

    它在Win32中的库名为GDI32.dll,它是图形输出库,使用GDI Windows "画"出窗口、菜单以及对话框等;

    它能创建图形输出

    它也能保存图形文件。

    例如,CreateBitmap 函数就能通过指定的长、宽、颜色创建一个位图。

    4、API&MFC

    API:一套用来控制Windows的各个部件(从桌面的外观到为一个新进程分配的内存)的外观和行为的一套预先定义的Windows函数。

    MFC:是对Windows API的封装,是Win API与C++的结合,MFC就是挂在它之上的一个辅助软件开发包。

    MFC的主包含文件为"Afxwin.h"

    API的主包含文件为"windows.h"

    API 函数的调用方法

    1、C++调用过程

    (1)包含要调用函数的声明文件

    windows.h包含其他头文件

    windef.h基本类型定义

    winnt.h支持Unicode的类型定义

    winbase.h内核函数

    winuser.h用户接口函数

    wingdi.h图形设备接口函数

    winsock.h网络编程函数

    (2)连接到指定的库文件

    kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib

    显式设置 #pragma comment(lib,"WS2_32.lib")

    (3)在API函数前加"::"表示这是一个全局函数,以与C++类的成员函数区分。

    调用API例子(C++)

    #include "stdafx.h"   // 这是VC自动添加的头文件,主要是加快编译速度#include <windows.h>  // 包含MessageBox函数声明的头文件 int main(int argc,char *argv[]){ // 调用API函数MessageBox int nSelect = ::MessageBox( NULL, "Hello,Windows", "Greeting", MB_OKCANCEL);  if(nSelect == IDOK)  printf("用户选择了“确定"按钮\n"); else  printf("用户选择了“取消"按钮\n"); return 0;}

    原文链接:https://blog.csdn.net/qq_32285693/article/details/95061363

  • 相关阅读:
    [WCF安全系列]从两种安全模式谈起
    为自定义配置的编辑提供”智能感知”的支持
    在Entity Framework中使用存储过程(二):具有继承关系实体的存储过程如何定义?
    [WCF安全系列]实例演示:TLS/SSL在WCF中的应用[HTTPS]
    [WCF安全系列]谈谈WCF的客户端认证[Windows认证]
    在Entity Framework中使用存储过程(三):逻辑删除的实现与自增长列值返回
    [转] Leaving patterns & practices
    两个简单的扩展方法:TrimPrefix和TrimSuffix
    Oracle 系统表
    让IoC动态解析自定义配置(提供基于Unity的实现)
  • 原文地址:https://www.cnblogs.com/freedomworld/p/11868151.html
Copyright © 2020-2023  润新知