青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

mEjY的自由世界

眼界決定世界

WINAPI和CALLBACK這兩個宏【zt】

WINAPI和CALLBACK這兩個宏

WINAPI和CALLBACK這兩個宏有什么區別呢?

_stdcall _cdecl _pascal _fastcall這些關鍵字是什么意思,有什么區別呢?

首先看MSDN里給出的解釋,不過有些語焉不詳哦

WINAPI 
·Use in place of FAR PASCAL in API declarations. If you are writing a DLL with exported API entry points, you can use this for your own APIs. 

CALLBACK
·Use in place of FAR PASCAL in application callback routines such as window procedures and dialog procedures. 

再看看到底這兩個宏的內容是什么吧

VC:WINDEF.h
#define CALLBACK    PASCAL //=_pascal,VC已經不支持直接使用_pascal了
#define WINAPI      CDECL //=_cdecl

BCB:windef.h
#define CALLBACK    __stdcall
#define WINAPI      __stdcall

引出了cdecl stdcall等一些可能很少見的關鍵字

那么cdecl、pascal、stdcall、fastcall等修飾符號到底什么意思呢?
非常簡單,就是關于堆棧的一些說明,首先是函數參數壓棧順序,其次是
壓入堆棧的內容由誰來清除,調用者還是函數自己?
這些開關用來告訴編譯器產生什么樣的匯編代碼。

下面把區別列表如下:

Directive Parameter order  Clean-up Passes parameters in registers?
 register  Left-to-right   Routine   Yes
 pascal   Left-to-right   Routine   No
 cdecl   Right-to-left   Caller    No
 stdcall   Right-to-left   Routine   No
 safecall  Right-to-left   Routine   No

簡單說明:

__cdecl是C/C++和MFC程序默認使用的調用約定,也可以在函數聲明時加上__cdecl關鍵字來手工指定。采用__cdecl約定時,函數參 數按照從右到左的順序入棧,并且由調用函數者把參數彈出棧以清理堆棧。因此,實現可變參數的函數只能使用該調用約定。由于每一個使用__cdecl約定的 函數都要包含清理堆棧的代碼,所以產生的可執行文件大小會比較大。__cdecl可以寫成_cdecl。
        __stdcall調用約定用于調用Win32 API函數。采用__stdcal約定時,函數參數按照從右到左的順序入棧,被調用的函 數在返回前清理傳送參數的棧,函數參數個數固定。由于函數體本身知道傳進來的參數個數,因此被調用的函數可以在返回前用一條ret n指令直接清理傳遞參 數的堆棧。__stdcall可以寫成_stdcall。
        __fastcall約定用于對性能要求非常高的場合。__fastcall約定將函數的從左邊開始的兩個大小不大于4個字節 (DWORD)的參數分別放在ECX和EDX寄存器,其余的參數仍舊自右向左壓棧傳送,被調用的函數在返回前清理傳送參數的堆棧。__fastcall可 以寫成_fastcall。 


·特別說明
1. 在默認情況下,采用__cdecl方式,因此可以省略.
2. WINAPI一般用于修飾動態鏈接庫中導出函數
3. CALLBACK僅用于修飾回調函數
4. 你可能已經發現,VC下和BCB下對WINAPI的定義不同,那么你至少理解了
   為什么不能直接從BCB下調用VC的dll的一個原因了。

posted on 2008-02-20 10:51 mEjY 閱讀(593) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


<2008年1月>
303112345
6789101112
13141516171819
20212223242526
272829303112
3456789

導航

統計

常用鏈接

留言簿(1)

隨筆檔案

文章分類

文章檔案

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            洋洋av久久久久久久一区| 亚洲精品一区在线| 欧美图区在线视频| 欧美不卡在线| 欧美人与禽猛交乱配| 欧美电影资源| 欧美精选在线| 国产精品日本精品| 国产综合一区二区| 一区二区自拍| 一本色道久久加勒比精品| 99riav国产精品| 欧美在线视频一区| 亚洲女ⅴideoshd黑人| 欧美va亚洲va香蕉在线| 亚洲精品综合在线| 性做久久久久久久久| 一区二区三区 在线观看视| 欧美日本一区| 欧美日精品一区视频| 国产精品vvv| 国产欧美精品一区aⅴ影院| 国产婷婷精品| 一区二区三区中文在线观看| 91久久亚洲| 亚洲精品视频在线| 久久精品国产亚洲5555| 午夜视频在线观看一区二区| 久久婷婷丁香| 欧美成人国产一区二区| 国产日本亚洲高清| 国产精品你懂的| 狠狠色综合色区| 亚洲网站视频福利| 蜜桃av噜噜一区| 久久精品国产清高在天天线| 欧美精品videossex性护士| 精品1区2区3区4区| 午夜老司机精品| 亚洲午夜一区二区| 欧美精品免费播放| 一区二区三区鲁丝不卡| 欧美不卡一区| 蜜乳av另类精品一区二区| 国产精品久久久久久久久搜平片 | 欧美日韩一区在线视频| 欧美国产日韩精品免费观看| 久久国产精品99国产精| 国产精品午夜国产小视频| 99综合精品| 日韩视频中文| 欧美三级视频在线| 欧美专区亚洲专区| 亚洲欧美怡红院| 国产自产在线视频一区| 久久精品日韩欧美| 欧美在线网站| 极品日韩av| 亚洲破处大片| 欧美一区二区精品| 久久精品亚洲精品| 国产一区av在线| 一本不卡影院| 激情五月婷婷综合| 最新日韩在线| 国产精品网站在线播放| 久久精品一区二区三区中文字幕 | 欧美成人在线网站| 亚洲精品中文字幕在线观看| 日韩一本二本av| 国产资源精品在线观看| 亚洲高清激情| 国产主播一区二区三区四区| 欧美mv日韩mv国产网站| 国产麻豆日韩| 亚洲欧美日韩精品久久奇米色影视| 国产一区二区三区四区老人| 亚洲精品一区在线| 国产麻豆日韩| 香港成人在线视频| 欧美专区在线播放| 国产精品va在线| 99精品热视频只有精品10| 最近看过的日韩成人| 蜜桃av一区二区| 免费观看日韩av| 国产精品一区亚洲| 欧美诱惑福利视频| 亚洲在线成人| 国产精品亚洲欧美| 午夜精品久久久久久久久久久久久| 亚洲欧美国产精品va在线观看| 午夜视频一区在线观看| 免费日本视频一区| 欧美成人综合一区| 狠狠色狠狠色综合日日小说| 久久先锋资源| 亚洲高清不卡一区| 亚洲一卡久久| 在线观看日韩av先锋影音电影院| 久久久久99| 亚洲国产aⅴ天堂久久| 亚洲欧美在线x视频| 国产视频自拍一区| 欧美91大片| 久久国产精品高清| 一区二区三区欧美| 欧美α欧美αv大片| 午夜亚洲激情| 一级日韩一区在线观看| 国产在线拍偷自揄拍精品| 欧美日本网站| 欧美精品免费在线| 久久久7777| 亚洲摸下面视频| 亚洲国产日韩在线| 一区二区久久| 亚洲第一毛片| 国产一区二区黄| 国产毛片精品国产一区二区三区| 国产日韩欧美综合在线| 欧美一级视频| 久久成人精品无人区| 玖玖国产精品视频| 欧美日韩在线三区| 国产在线视频欧美一区二区三区| 一区在线免费观看| 一本一本久久a久久精品综合妖精| 一色屋精品亚洲香蕉网站| 精品动漫一区二区| 日韩视频中文| 欧美专区18| 国产日韩欧美在线看| 在线观看欧美激情| 在线看片日韩| 亚洲女人小视频在线观看| 亚久久调教视频| 欧美黄色一区| 久久久久网站| 国产伦精品一区二区三区免费 | 影音先锋中文字幕一区| 国内精品视频久久| 一区二区激情小说| 久久综合久久久| 亚洲性av在线| 欧美精品一区三区在线观看| 国产日韩精品一区二区三区| 欧美日韩亚洲综合| 亚洲片在线观看| 亚洲国产电影| 美女免费视频一区| 黄色一区三区| 精品不卡一区| 欧美成人免费一级人片100| 久久狠狠一本精品综合网| 国产欧美短视频| 久久另类ts人妖一区二区 | 伊人久久大香线蕉av超碰演员| 欧美日韩理论| 欧美日韩欧美一区二区| 欧美性事在线| 亚洲一区二区网站| 亚洲免费一在线| 国产精品午夜视频| 欧美综合国产| 久久精品国产第一区二区三区最新章节| 韩国一区电影| 一本色道久久综合亚洲精品小说 | 久久久欧美一区二区| 一二三区精品福利视频| 亚洲午夜激情网站| 亚洲欧美影院| 一区二区三区四区精品| 亚洲午夜精品一区二区三区他趣| 久久九九国产| 久久久久久久综合狠狠综合| 欧美亚洲免费在线| 欧美午夜视频网站| 久久全球大尺度高清视频| 老司机凹凸av亚洲导航| 国产在线精品自拍| 日韩一级精品| 亚洲国产精品电影| 伊伊综合在线| 亚洲精品在线观| 欧美日韩国产首页在线观看| 一区二区三区高清视频在线观看| 亚洲自拍偷拍福利| 亚洲欧美成人综合| 久久婷婷人人澡人人喊人人爽 | 欧美日韩日本国产亚洲在线| 久久精品人人做人人综合| 久久综合影视| 亚洲少妇在线| 国产精品久久亚洲7777| 一区二区三区视频观看| 欧美gay视频| 亚洲成人资源网| 91久久极品少妇xxxxⅹ软件| 欧美激情一区二区三区在线视频|