• <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>
            如果通過VC++編寫的DLL欲被其他語言編寫的程序調(diào)用,應將函數(shù)的調(diào)用方式聲明為__stdcall方式,WINAPI都采用這種方式,而C/C++缺省的調(diào)用方式卻為__cdecl。__stdcall方式與__cdecl對函數(shù)名最終生成符號的方式不同。若采用C編譯方式(在C++中需將函數(shù)聲明為extern "C"),__stdcall調(diào)用約定在輸出函數(shù)名前面加下劃線,后面加“@”符號和參數(shù)的字節(jié)數(shù),形如_functionname@number;而__cdecl調(diào)用約定僅在輸出函數(shù)名前面加下劃線,形如_functionname。

              Windows編程中常見的幾種函數(shù)類型聲明宏都是與__stdcall和__cdecl有關的(節(jié)選自windef.h):

            #define CALLBACK __stdcall //這就是傳說中的回調(diào)函數(shù)

            #define WINAPI __stdcall //這就是傳說中的WINAPI

            #define WINAPIV __cdecl

            #define APIENTRY WINAPI //DllMain的入口就在這里

            #define APIPRIVATE __stdcall

            #define PASCAL __stdcall


              在lib.h中,應這樣聲明add函數(shù):

            int __stdcall add(int x, int y);


              在應用工程中函數(shù)指針類型應定義為:

            typedef int(__stdcall *lpAddFun)(int, int);


              若在lib.h中將函數(shù)聲明為__stdcall調(diào)用,而應用工程中仍使用typedef int (* lpAddFun)(int,int),運行時將發(fā)生錯誤(因為類型不匹配,在應用工程中仍然是缺省的__cdecl調(diào)用),
            Posted on 2005-11-25 18:19 艾凡赫 閱讀(4965) 評論(0)  編輯 收藏 引用 所屬分類: DLL 技術
            …久久精品99久久香蕉国产| 久久这里都是精品| 国产欧美久久久精品| 国产午夜精品理论片久久| 美女久久久久久| 亚洲国产精品无码久久久蜜芽| 久久免费视频网站| 怡红院日本一道日本久久| 四虎国产精品成人免费久久| 国产精品久久久久久久久鸭| 久久人人爽人人爽人人片AV麻豆| 国产aⅴ激情无码久久| 久久一区二区三区99| 精品一区二区久久| 中文字幕无码免费久久| 久久久久99精品成人片三人毛片| 久久99久久99小草精品免视看| 中文字幕精品久久| 久久精品国产第一区二区| 国产综合久久久久久鬼色| 久久无码专区国产精品发布| 国产精品免费久久久久影院| 99久久精品国产麻豆| 久久91精品国产91| 一本色道久久88综合日韩精品| 欧美一区二区精品久久| 国产午夜久久影院| 99久久精品日本一区二区免费| 久久婷婷激情综合色综合俺也去| 亚洲美日韩Av中文字幕无码久久久妻妇 | 久久综合久久自在自线精品自 | 亚洲国产美女精品久久久久∴ | 久久综合狠狠综合久久97色| 国产伊人久久| 久久精品中文字幕第23页| 精品久久久无码中文字幕天天| 国产ww久久久久久久久久| 人人狠狠综合久久亚洲88| 国产精品激情综合久久| 亚洲国产成人久久综合一区77 | 伊人色综合久久天天人手人婷|