Windows API基础知识 setlocale设置默认地域、字符集说明、MultiByteToWideChar、WideCharToMultiByte

Windows系统函数由三部分组成,其实也是三个DLL动态链接库,或者说是头文件
内核函数,Kernel32.dll
用户函数,User32.dll
GDI函数,GDI.dll

#define WINAPI __stdcall 函数参数调用方法

1.变量名称表示方法
int 用i表示
LPSTR用sz表示【以零结尾的字符串】
LP 表示【长指针】

在32位的程序中,HINSTANCE preInstance已经没有意义,使用NULL、Win98之前有用,到winNT就废弃了

MessageBox的第四个参数定义
#define MB_OK 确定
#define MB_OKCANCLE 确定和取消
#define MB_ABORTRETRYIGNORE 中止、重试和忽略
#define MB_YESNOCANCLE 是、否和取消
#define MB_YESNO 是和否
#define MB_RETRYCANCLE 重试和取消

字符类型

英文字符 宽字符
char ‘A’ wchar_t L’中’
printf wprintf
strlen wcslen
strcpy wsccpy
strcat wcscat
strcmp wcscmp
strstr wcsstr

显示中文需要设置默认地域
#include <local.h>
setlocal(LC_ALL,“”);
setlocal(LC_ALL,NULL); //简体中文字符集936页

char *  setlocale(
_In_ int _Category, //参数LC_ALL
_In_opt_z_ const char * _Locale //设置“”或NULL
); //返回设置成功的地域

字符三种版本(字符、函数…)
ANSI版本和UNICODE版本的选择还是用#define UNICODE宏进行选择

ANSI版本 宽字符 通用版
CHAR WCHAR TCHAR
char wchar_t TCHAR
‘a’ L’中’ ‘_T(’中’)
PCHAR PWCHAR PTCHAR
PSTR PWSTR PTSTR
PCSTR PCWSTR PCTSTR
LPSTR LPWSTR LPTSTR
LPCSTR LPCWSTR LPCTSTR
“abc” L"中国人" TEXT(中国人)
W… T…
MessageBoxA MessageBoxW MessageBox
…A …W

不是所有的函数都使用A版和W版,只是在处理含有字符时,才会使用A版W版的函数。推荐类型都使用T版,方便移植,编译时由UniCode会自动会选择编译的函数,方便使用,而且会减少很多不必要的麻烦。

字符转换
多字节字符和宽字符间的转换
MultiByteToWideChar()
WideCharToMultiByte()

int MultiByteToWideChar(
    __in UINT     CodePage, //字符页CP_ACP
    __in DWORD    dwFlags, //转
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值