1-WindowAPI:MessageBox新建一个窗口

本文介绍了如何在Windows环境下进行ANSI字符串到Unicode的转换,讲解了使用`MessageBox`函数时的编码问题,并展示了如何修改Visual Studio项目设置以创建无控制台的窗口应用程序。同时,详细解释了`UNICODE`宏定义的作用,以及`wWinMain`函数在创建窗口程序中的应用。
摘要由CSDN通过智能技术生成

基本概念

常见宏定义

ANSI字符串转UNICODE:

不建议使用TEXT

win命令规则:

windowapi位置:

2 hello world

vs2017 community

方式一

如果这里设置使用Unicode字符集,则说明了定义unicode,此时:

#ifdef UNICODE
#define MessageBox  MessageBoxW
#else
#define MessageBox  MessageBoxA
#endif // !UNICODE

MessageBox使用宽字符,如果直接写:

则提示报错,因为hello world是ANSI编码。需要转为Unicode编码:

#include <Windows.h>

int main()
{
  MessageBox(NULL, L"hello world", L"HELLO", MB_OK);
  return 0;
}

API链接:https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-messagebox

运行程序,发现先打开一个控制台,后出现窗口:

这是因为新建的控制台程序。

    将子系统改为窗口:

再将mian替换为

int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
  _In_opt_ HINSTANCE hPrevInstance,
  _In_ LPWSTR    lpCmdLine,
  _In_ int       nCmdShow)
#include <Windows.h>

int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
                     _In_opt_ HINSTANCE hPrevInstance,
                     _In_ LPWSTR    lpCmdLine,
                     _In_ int       nCmdShow)
{
  MessageBox(NULL, L"hello world", L"HELLO", MB_OK);
  return 0;
}

再次运行程序,发现没有控制台窗口

 

方式二:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值