Win32API中的宽字符

什么是Win32API

就是Windows操作系统已经设计好的函数,方便我们程序调用,我这里的环境是32位xp,在C:\WINDOWS\system32下所有的.dll文件都是API。

几个重要的DLL

  • Kemel32.dll:最核心的功能能模块,比如管理内存、进程和线程相关的函数等。
  • User32.dll:是Windows用户界面相关应用程序接口,如创建窗口和发送信息等。
  • GDI32.dll:全称是Graphical Device Interface(图形黑色被接口),包含用于画图和显示文本的函数。

关于Win32的数据类型

例子:

// 2020_04_08.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <windows.h>

void main()
{
	int Messagebox(
	HWND hWnd,		//handle to owner window
	LPCTSTR lpText, //text in message box
	LPCTSTR lpCaption, 	//message box title
	UINT uType			//message box style
);
	return;
}


这里看似有很多新类型,不懂得我们就点一下那个类型,然后F12看一下它原来的模样,比如这个UINT:
在这里插入图片描述

在Win32中使用字符串

在Win32中程序也有自己的字符编码:

CHAR szStr[] = "hahaah~";		//ASCII

WCHAR swzStr[] = "hahaha~"		//Unicode

如果你采用了ASCII编码输出字符串,那么当你转到Unicode环境下的时候就需要全部转换为Unicode,这样很麻烦 ,我们可以用一个Windows下自带的宏来解决这个问题,可以理解为“万能编码”:

TCHAR stzStr[] = TEXT("hahaha~")	//自动识别当前环境编码

第一个Win32小程序

例子:

#include "stdafx.h"
#include <windows.h>

void main()
{
	TCHAR stzTitle[] = TEXT("1匹黑马");
	
	TCHAR stzContent[] = TEXT("这是我的第一个Win32API程序!");

	MessageBox(0,stzContent,stzTitle,MB_RETRYCANCEL);
	return;
}

运行结果:
在这里插入图片描述

这里的按钮我们也可以改,修改MessageBox这个API的最后一个参数就行:

#include "stdafx.h"
#include <windows.h>

void main()
{
	TCHAR stzTitle[] = TEXT("1匹黑马");
	
	TCHAR stzContent[] = TEXT("这是我的第一个Win32API程序!");

	MessageBox(0,stzContent,stzTitle,MB_YESNO);		//修改这最后一个参数
	return;
}

运行结果:
在这里插入图片描述

发布了69 篇原创文章 · 获赞 81 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43573676/article/details/105399390