不包含SDK头文件, 补全API定义

本文详细介绍了如何在不包含SDK头文件的情况下,补全API定义,并实现了一个简单的Windows应用程序主入口函数,包括使用MessageBoxA函数进行基本的对话框显示。
/// @file main.cpp
/// @brief 不包含SDK头文件, 补全API定义

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
    
#define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__* name
DECLARE_HANDLE(HWND);
DECLARE_HANDLE(HINSTANCE);

#define WINAPI __stdcall
typedef char* LPSTR;
typedef const char* LPCSTR;
typedef unsigned int UINT;
#define NULL 0
#define MB_OK 0

/// MessageBoxA 是CRT函数
__declspec(dllimport)
int
WINAPI
MessageBoxA(
            HWND hWnd ,
            LPCSTR lpText,
            LPCSTR lpCaption,
            UINT uType);

#define MessageBox MessageBoxA

#ifdef __cplusplus
}
#endif  /* __cplusplus */

int WINAPI WinMain(HINSTANCE hInstance,
        HINSTANCE hPrevInstance,
        LPSTR     lpCmdLine,
        int       nCmdShow) {
    MessageBox(NULL, "test", "main", MB_OK);

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值