1.CALLBACK,WINAPI的实质: 在windef.h中的定义:#undef far
#undef near
#undef pascal#define far
#define near
#if (!defined(_MAC)) && ((_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED))
    #define pascal __stdcall
#else
    #define pascal
#endif#if defined(DOSWIN32) || defined(_MAC)
    #define cdecl _cdecl
    #ifndef CDECL
        #define CDECL _cdecl
    #endif
#else
    #define cdecl
    #ifndef CDECL
        #define CDECL
    #endif
#endif#ifdef _MAC
    #define CALLBACK PASCAL
    #define WINAPI CDECL
    #define WINAPIV CDECL
    #define APIENTRY WINAPI
    #define APIPRIVATE CDECL
    #ifdef _68K_
        #define PASCAL __pascal
    #else
        #define PASCAL
    #endif
#elif (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)
        #define CALLBACK __stdcall
        #define WINAPI __stdcall
        #define WINAPIV __cdecl
        #define APIENTRY WINAPI
        #define APIPRIVATE __stdcall
        #define PASCAL __stdcall
    #else
        #define CALLBACK
        #define WINAPI
        #define WINAPIV
        #define APIENTRY WINAPI
        #define APIPRIVATE
        #define PASCAL pascal
#endif2.為什麼 Windows Programming Modal 要把視窗函式設計為
一個 call back 函式?為什麼不讓程式在抓到訊息(GetMessage )之後直接呼叫它就好
了?原因是,除了你需要呼叫它,有很多時候作業系統也要呼叫你的視窗函式(例如當某個訊
息產生或某個事件發生)。視窗函式設計為 callback 形式,才能開放出一個介面
給作業系統叫用。

解决方案 »

  1.   

    1.CALLBACK,WINAPI的实质: 在windef.h中的定义:#undef far
    #undef near
    #undef pascal#define far
    #define near
    #if (!defined(_MAC)) && ((_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED))
        #define pascal __stdcall
    #else
        #define pascal
    #endif#if defined(DOSWIN32) || defined(_MAC)
        #define cdecl _cdecl
        #ifndef CDECL
            #define CDECL _cdecl
        #endif
    #else
        #define cdecl
        #ifndef CDECL
            #define CDECL
        #endif
    #endif#ifdef _MAC
        #define CALLBACK PASCAL
        #define WINAPI CDECL
        #define WINAPIV CDECL
        #define APIENTRY WINAPI
        #define APIPRIVATE CDECL
        #ifdef _68K_
            #define PASCAL __pascal
        #else
            #define PASCAL
        #endif
    #elif (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)
            #define CALLBACK __stdcall
            #define WINAPI __stdcall
            #define WINAPIV __cdecl
            #define APIENTRY WINAPI
            #define APIPRIVATE __stdcall
            #define PASCAL __stdcall
        #else
            #define CALLBACK
            #define WINAPI
            #define WINAPIV
            #define APIENTRY WINAPI
            #define APIPRIVATE
            #define PASCAL pascal
    #endif2.為什麼 Windows Programming Modal 要把視窗函式設計為
    一個 call back 函式?為什麼不讓程式在抓到訊息(GetMessage )之後直接呼叫它就好
    了?原因是,除了你需要呼叫它,有很多時候作業系統也要呼叫你的視窗函式(例如當某個訊
    息產生或某個事件發生)。視窗函式設計為 callback 形式,才能開放出一個介面
    給作業系統叫用。
      

  2.   

    1.CALLBACK,WINAPI的实质: 在windef.h中的定义:#undef far
    #undef near
    #undef pascal#define far
    #define near
    #if (!defined(_MAC)) && ((_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED))
        #define pascal __stdcall
    #else
        #define pascal
    #endif#if defined(DOSWIN32) || defined(_MAC)
        #define cdecl _cdecl
        #ifndef CDECL
            #define CDECL _cdecl
        #endif
    #else
        #define cdecl
        #ifndef CDECL
            #define CDECL
        #endif
    #endif#ifdef _MAC
        #define CALLBACK PASCAL
        #define WINAPI CDECL
        #define WINAPIV CDECL
        #define APIENTRY WINAPI
        #define APIPRIVATE CDECL
        #ifdef _68K_
            #define PASCAL __pascal
        #else
            #define PASCAL
        #endif
    #elif (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)
            #define CALLBACK __stdcall
            #define WINAPI __stdcall
            #define WINAPIV __cdecl
            #define APIENTRY WINAPI
            #define APIPRIVATE __stdcall
            #define PASCAL __stdcall
        #else
            #define CALLBACK
            #define WINAPI
            #define WINAPIV
            #define APIENTRY WINAPI
            #define APIPRIVATE
            #define PASCAL pascal
    #endif2.為什麼 Windows Programming Modal 要把視窗函式設計為
    一個 call back 函式?為什麼不讓程式在抓到訊息(GetMessage )之後直接呼叫它就好
    了?原因是,除了你需要呼叫它,有很多時候作業系統也要呼叫你的視窗函式(例如當某個訊
    息產生或某個事件發生)。視窗函式設計為 callback 形式,才能開放出一個介面
    給作業系統叫用。