user-0 提问: 这段C代码是什么意思，为什么可以这样调用

回复:
user: user-1
content: http://bbs.csdn.net/topics/390374955 参考C:\windows_2000_source_code\win2k\private\ntos\w32\ntuser\client\msgbox.c内容节选：      316: /***************************************************************************\     317: * MessageBox (API)     318: *     319: * History:     320: * 11-20-90 DarrinM      Ported from Win 3.0 sources.     321: \***************************************************************************/     322:      323: int MessageBoxA(     324:     HWND hwndOwner,     325:     LPCSTR lpszText,     326:     LPCSTR lpszCaption,     327:     UINT wStyle)     328: {     329:     EMIGETRETURNADDRESS();     330:     return MessageBoxExA(hwndOwner, lpszText, lpszCaption, wStyle, 0);     331: }     332:      333: int MessageBoxW(     334:     HWND hwndOwner,     335:     LPCWSTR lpszText,     336:     LPCWSTR lpszCaption,     337:     UINT wStyle)     338: {     339:     EMIGETRETURNADDRESS();     340:     return MessageBoxExW(hwndOwner, lpszText, lpszCaption, wStyle, 0);     341: }     342:      343:      344: /***************************************************************************\     345: * MessageBoxEx (API)     346: *     347: * History:     348: * 11-20-90 DarrinM      Ported from Win 3.0 sources.     349: \***************************************************************************/     350:      351: int MessageBoxExA(     352:     HWND hwndOwner,     353:     LPCSTR lpszText,     354:     LPCSTR lpszCaption,     355:     UINT wStyle,     356:     WORD wLanguageId)     357: {     358:     int retval;     359:     LPWSTR lpwszText = NULL;     360:     LPWSTR lpwszCaption = NULL;     361:      362:     if (lpszText) {     363:         if (!MBToWCS(lpszText, -1, &lpwszText, -1, TRUE))     364:             return 0;     365:     }     366:      367:     if (lpszCaption) {     368:         if (!MBToWCS(lpszCaption, -1, &lpwszCaption, -1, TRUE)) {     369:             UserLocalFree(lpwszText);     370:             return 0;     371:         }     372:     }     373:      374:     EMIGETRETURNADDRESS();     375:     retval = MessageBoxExW(hwndOwner,     376:                            lpwszText,     377:                            lpwszCaption,     378:                            wStyle,     379:                            wLanguageId);     380:      381:     UserLocalFree(lpwszText);     382:     if (lpwszCaption)     383:         UserLocalFree(lpwszCaption);     384:      385:     return retval;     386: }     387:      388: int MessageBoxExW(     389:     HWND hwndOwner,     390:     LPCWSTR lpszText,     391:     LPCWSTR lpszCaption,     392:     UINT wStyle,     393:     WORD wLanguageId)     394: {     395:     MSGBOXDATA  MsgBoxParams;     396:      397:      398: #if DBG     399:     /*     400:      * MB_USERICON is valid for MessageBoxIndirect only.     401:      * MessageBoxWorker validates the other style bits     402:      */     403:     if (wStyle & MB_USERICON) {     404:         RIPMSG0(RIP_WARNING, "MessageBoxExW: Invalid flag: MB_USERICON");     405:     }     406: #endif     407:      408:     RtlZeroMemory(&MsgBoxParams, sizeof(MsgBoxParams));     409:     MsgBoxParams.cbSize           = sizeof(MSGBOXPARAMS);     410:     MsgBoxParams.hwndOwner        = hwndOwner;     411:     MsgBoxParams.hInstance        = NULL;     412:     MsgBoxParams.lpszText         = lpszText;     413:     MsgBoxParams.lpszCaption      = lpszCaption;     414:     MsgBoxParams.dwStyle          = wStyle;     415:     MsgBoxParams.wLanguageId      = wLanguageId;     416:      417:     EMIGETRETURNADDRESS();     418:     return MessageBoxWorker(&MsgBoxParams);     419: }

user: user-2
content: 我看向伪代码

user: user-0
content: 引用 1 楼 zhao4zhong1 的回复:奇技淫巧帮我看看吧，现在上传了图片。

user: user-0
content: 这是看雪论坛的《加密与解密》书里面介绍Windows内部函数的一段代码，pdf不清晰，但是能看，请大手指导一下，为什么能这么用，我们能这样定义函数吗？ 还是这本来就不是C代码！！！！！！！

user: user-3
content: 看不懂啊，好奇葩的用法

user: user-1
content: 奇技淫巧