精华内容
下载资源
问答
  • WinAPI

    2016-06-03 11:24:44
    常用的winAPI.1.MessageBoxMSDN:实例记

    常用的winAPI.

    1.MessageBox

    MSDN:

    实例

    标志寄存器

    展开全文
  • WINAPI

    千次阅读 2009-08-21 09:25:00
    今天读程序的时候看到一个函数这样写:bool WINAPI ConsoleCtrlHandler(DWORD);对这个WINAPI的意思不太明白,就上网找了一些关于这个名词的解释。就当做做笔记了。 WINAPI的定义见windef.h这个头文件其定义是这样的...

    今天读程序的时候看到一个函数这样写:bool WINAPI ConsoleCtrlHandler(DWORD);

    对这个WINAPI的意思不太明白,就上网找了一些关于这个名词的解释。就当做做笔记了。

     

    WINAPI的定义见windef.h这个头文件其定义是这样的:

    #define WINAPI _stdcall

     

    CALLBACK函数也是这样定义的,CALLBACK是一个回调函数。

     

    _stdcall:

    1. 进行函数调用,函数参数的入栈方式是最右边先入栈。//即:压栈顺序:从右至左。

    2. 同时_stdcall规定,调用者负责栈的回收。               //即:清栈:被调用函数负责清空,成为callee cleanup。

     

     

    附录:

    Microsoft函数调用约定

    对于所有调用共有的约定:ebx、ebp、esi、edi都是calle-save,即由被调用的函数负责它们的保存(如果被调用函数用到了这些寄存器的话)
    先看函数调用发生了什么:(win32下)
    1、所有参数提升到4bytes的倍数
    2、执行call指令
    3、将ebx、ebp、esi、edi保存在栈上,这一步称为function prolog
    4、将返回值放在eax中(返回int64放在edx:eax中,返回double放在浮点寄存器中。复杂的数据结构在caller的栈中分配空间,将首地址做为最后压栈的参数(我拿__cdecl试的),callee返回的时候将返回值放在这个指针指向的地址)
    5、取出ebx、ebp、esi、edi,这一步称为function epilog
    6、清空栈,保持堆栈平衡,这一步称为stack cleanup  //这部分内容可能涉及到了数据结构和微机原理,有这些知识可能才能充分理解

     

    具体的调用约定:
    1、__cdecl
    压栈顺序:从右至左
    清栈:函数调用者负责清空,称为caller cleanup
    名字修饰(name decoration):在函数名前加上下划线做前缀,比如_foo
    注:c/c++函数的缺省调用约定

    2、__stdcall
    压栈顺序:从右至左
    清栈:被调用函数负责清空,称为callee cleanup
    名字修饰:在函数名前加上下划线做前缀,名字后用@加上函数参数大小做后缀,如_foo@8
    注:WINAPI就是__stdcall的#define

    3、__fastcall
    压栈顺序:第一个参数放在ecx,第二个参数放在edx,其余从右至左
    清栈:callee cleanup
    名字修饰:在函数名前加上@做前缀,名字后用@加上函数参数大小做后缀,如@foo@8
    注:名字叫fast实际就不一定了……

    4、thiscall
    压栈顺序:this指针(cpp非静态成员函数特有)放在ecx,其余从右至左
    清栈:callee cleanup
    注:cpp非静态成员函数默认的调用约定

    5、naked
    压栈顺序:从右至左
    清栈:caller cleanup
    注:VxDs用的调用约定,将__declspec(naked)写在函数定义处(注意,不是声明)

    //上面的内容如果想完全理解的话,必须在程序中多加练习才可以

     

    这就是我找到的关于WINAPI的一些资料,可能不太全面而且很杂。但是看完还是能了解WINAPI的大体意思

    展开全文
  • winapi

    2007-04-02 09:13:21
    window api
  • winAPI常用函数总结,特别适合初学者,当手册进行查询,尹成大神推荐
  • WinApi WinAPI基本操作准则
  • WinApi手册

    热门讨论 2012-03-30 10:37:35
    windows Api函数手册,方便调用底层Api,WinApi手册WinApi手册
  • WinAPI大全

    2013-01-24 09:49:35
    已编译的HTML帮助文件,方便WinAPI编程学习、查询。
  • winAPI的-源码

    2021-02-13 12:31:38
    “#winAPI
  • I was trying to write some python code that requires calls to native WINAPI functions. At first I came across the pypiwin32 package. Then, somewhere on the internet I saw someone using the _winapi mod...

    I was trying to write some python code that requires calls to native WINAPI functions. At first I came across the pypiwin32 package. Then, somewhere on the internet I saw someone using the _winapi module. I found no proper documentation for this module, only this link to cpython's GitHub page.

    Is this a cpython-specific module? That is, is it not guaranteed that other implementations have this module?

    Do I need the pypiwin32 package if the functions I need are already implemented in the _winapi module?

    解决方案

    It seems _winapi is specific to CPython and was added in python 3.3 under Issue 11750.

    See Modules/_winapi.c which was added by this commit

    This fits with the following observed behaviour:

    python 2.x - 3.2 import _winapi fails with ImportError

    python 3.3+ import _winapi works fine

    Relying upon _winapi is a bad idea as it's undocumented and CPython-specific.

    展开全文
  • WINAPI

    千次阅读 2016-12-19 10:26:22
    为什么要使用WINAPI宏?  看看上面的举例,在函数前加了一个WINAPI宏。这一点很重要,它直接关系着函数输出什么样子的修饰名,使用WINAPI宏的TestAdd函数,对应的输出修饰名就是“?TestAdd@@YGHHH@Z”。  为什么要...
    为什么要使用WINAPI宏?
    
        看看上面的举例,在函数前加了一个WINAPI宏。这一点很重要,它直接关系着函数输出什么样子的修饰名,使用WINAPI宏的TestAdd函数,对应的输出修饰名就是“?TestAdd@@YGHHH@Z”。
        为什么要使用WINAPI呢?这牵涉到动态库的另一个特征,调用协议(Calling convention)。如果没有一定的协议,动态库的调用是不可想象的。一般常用的动态库调用协议有:
       __cdecl
       __stdcall 
       __fastcall
    这些协议各有各的长处,这里暂不一一描述。上面在谈到解决VB程序调用VC写的动态库时,曾列举两种解决方法,但并不一定可以实现,它还取决于所使用的调用协议。VB所遵循的是PASCAL协议,如果在动态库中没有使用相应的协议,则VB程序执行时就会报告“调用协议错”。而PASCAL协议在VC6中已被废弃,取而代之的是__stdcall,即标准调用协议,这也是大多32位编程语言支持的一种通用协议。在WINDOWS.H中WINAPI也是被定义为__stdcall。这里提议使用WINAPI的理由也就在这,它能够表达出更加多的信息----这样定义的输出函数(的调用协议)和 WINDOWS API函数(的调用协议)一样。
        其它一些使用WINAPI宏的理由:你只要在所定义的函数前加上该宏,就不必要在每次连接时再去理会各种与调用协议相关的设置。况且,你可能并不需要将所有定义的函数都输出,为了提高执行速度,你可能会将没有输出的函数使用__fastcall来定义,为了使用变参,你可能使用__cdecl来定义某些非输出函数,或者诸如此类的理由......需要提醒的是,VC默认的调用协议是__cdecl。如果你在没有修改调用协议的情况下,直接使用DEF文件输出函数,编译连接都不会出错,但是VB调用的时候肯定出错。而如果使用了WINAPI宏,你不必再去理会这些。编译器自动使用WINAPI的定义替代集成环境里的相关设置,这里函数前的说明优先级最高。

        回过头来再看上面有关输出函数的修饰名的讨论,上面提到修饰名与语言有关,另外,它还与调用协议有关。如果需要使用非函数名的名字用来输出,你必须清楚你使用的调用协议及语言种类,也就是你必须清楚修饰名的生成规则,或者你采用一些技巧,让DUMPBIN.EXE工具来帮忙。

    使用定义文件和WINAPI宏编写自己的API动态库


    Win32 API函数的 WINAPI 宏

    展开全文
  • winapi_vscode.rar

    2020-03-11 18:27:43
    Github链接:https://github.com/JamesHoi/winapi_vscode 通过Visual Studio Code编写c++ winapi程序范例
  • Introduction to WinAPI

    2016-09-01 21:12:38
    Introduction to WinAPI by Ivan Shumskiy English | 20 Aug 2016 | ASIN: B01KRSYRXU | 362 Pages | PDF (True) | 2.52 MB Win32 API (hereinafter WinAPI) - a set of functions (API - application programming ...
  • WinAPI技巧:恶意软件使用或滥用的各种WINAPI技巧功能的集合
  • winapi祖玛游戏

    2018-10-16 10:26:29
    VS2017,winapi项目,祖玛游戏,消除的时候是按自己写的,有点小问题,可以运行。
  • Domino WinAPI-开源

    2021-07-05 23:19:28
    一个完全用 C++/WINAPI 编写的 Domino 游戏,有一些错误,但最重要的部分正在工作。 享受
  • 新编winapi大全

    2015-03-02 09:59:28
    winapi win32 API 大全,对Windows开发的朋友有一定帮助
  • WINAPI-labs-源码

    2021-04-01 12:52:11
    WINAPI实验室 ЛабораторныепоWINAPI
  • 由 jNizM 编写的 AutoHotkey、WinAPI 和 DllCall AHK --> DllCall --> WinAPI 当前的 剪贴板功能 [CloseClipboard](src/Clipboard Functions/CloseClipboard.ahk) [EmptyClipboard](src/Clipboard Functions...
  • G WinAPI Framework-开源

    2021-07-09 06:05:39
    面向对象的游戏 WinAPI 框架。
  • 易语言WINAPI转API声明源码,WINAPI转API声明,signvar,WinTypesToE,Loadlib,GetLibFileName,DelComment,Replace,GetRealc,WINAPI2E,STRUCT2E,CALLBACK2E,文本_删首尾字符,文本_取空格前文本,文本_取空格后文本,路径_...
  • WinAPI_Delphi 新编WinAPI参考大全 chm版 参考学习所必备的东西。
  • 临时Windows WinAPI挂钩
  • Qt4.7通过WinApi获取串口号Qt4.7通过WinApi获取串口号Qt4.7通过WinApi获取串口号Qt4.7通过WinApi获取串口号Qt4.7通过WinApi获取串口号
  • 五子棋 基于winapi

    2013-06-10 15:47:49
    五子棋 基于winapi 我写的加权函数是基于估值求和的,大部分时候运行比较不错……

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 73,997
精华内容 29,598
关键字:

winapi