widechartomultibyte,widechartomultibyte 转ansi

http://www.itjxue.com  2023-01-20 00:58  来源:未知  点击次数: 

WideCharToMultiByte导入头文件为什么还是不能用

WideCharToMultiByte

函数功能:该函数映射一个unicode字符串到一个多字节字符串。

函数原型:

int WideCharToMultiByte(

UINT CodePage, //指定执行转换的代码页

DWORD dwFlags, //允许你进行额外的控制,它会影响使用了读音符号(比如重音)的字符

LPCWSTR lpWideCharStr, //指定要转换为宽字节字符串的缓冲区

int cchWideChar, //指定由参数lpWideCharStr指向的缓冲区的字符个数

LPSTR lpMultiByteStr, //指向接收被转换字符串的缓冲区

int cchMultiByte, //指定由参数lpMultiByteStr指向的缓冲区最大值

LPCSTR lpDefaultChar, //遇到一个不能转换的宽字符,函数便会使用pDefaultChar参数指向的字符

LPBOOL pfUsedDefaultChar //至少有一个字符不能转换为其多字节形式,函数就会把这个变量设为TRUE

);

参数:

CodePage:指定执行转换的代码页,这个参数可以为系统已安装或有效的任何代码页所给定的值。你也可以指定其为下面的任意一值:

CP_ACP:ANSI代码页;CP_MACCP:Macintosh代码页;CP_OEMCP:OEM代码页;

CP_SYMBOL:符号代码页(42);CP_THREAD_ACP:当前线程ANSI代码页;

CP_UTF7:使用UTF-7转换;CP_UTF8:使用UTF-8转换。

VC6.0 怎么使用 WideCharToMultiByte 函数

一般的使用方法是调用两次,

第一次获取需要分配内存的大小

分配完成后第二次在调用进行实际的转换

wchar_t?*src;

char?*dest;

int?cch;

?

cch?=?WideCharToMultiByte(CP_ACP,?0,?src,?-1,?NULL,?0,?NULL,?NULL);

dest?=?new?char[cch];

WideCharToMultiByte(CP_ACP,?0,?src,?-1,?dest,?cch,?NULL,?NULL);

错误 92 error C2664: “WideCharToMultiByte”: 不能将参数 3 从“unsigned short *”转换为“LPCWSTR”

试一试

use std::wstring

或者

按alt+f7 然后去configuration properties - general 把"character set" 从 unicode 改为multibyte.

delphi widechartomultibyte 引用哪个单元

WideCharToMultiByte 函数定义于 WinApi.Windows 单元(早期delphi版本在可能在 windows 单元),其函数原型定义如下:

function?WideCharToMultiByte;?external?kernel32?name?'WideCharToMultiByte';

(责任编辑:IT教学网)

更多

推荐HTML/Xhtml文章