API函数后面有些带A 或EX 或EXA 都什么意思

API函数后面有些带A 或EX 或EXA 都什么意思,第1张

有些API后面会带有A或W

A是ANSI 版本

W呢则是UNICODE版本

这和编码所采用的字符集(Character Set)有关系

所以我们看到API一般都有这样的宏定义

#ifdef UNICODE

#define CreateProcess CreateProcessW

#else

#define CreateProcess CreateProcessA

#endif // !UNICODE

EX一般意思是该函数的扩展(EXTEND)版

EXA则是扩展版的ANSI版

字节数,字符串长度,字符个数区别如下,以编程语言java为例:

1、字节数是变量在内存中占有的空间大小,如int类型占4字节,long类型占8字节等等,并且1字节(byte)=8比特(bit)。

2、字符串长度是你写的内容的长度,如定义String str = “hello”,那么str的字符串长度为5。

3、字符个数就是字符串包含多少个字符,如String str = “hello”,字符有h,e,l,l,o一共5个字符,所以字符个数为5个。

扩展资料:

字符串长度可以通过String自带的length方法求出,如String str = “hello”,它的字符串长度为strlength()。

字符个数在”数值“上与字符串长度相等,但并没有什么实际用途,只是定义上的区分罢了。

//char to wchar

WCHAR WChar(char string)

{

WORD wchr;

int wsize=MultiByteToWideChar(CP_ACP, NULL, string, strlen(string), NULL, 0);

wchr=new WORD[wsize+1];

MultiByteToWideChar(CP_ACP, NULL, string, strlen(string), wchr, wsize);

wchr[wsize]=0;

return wchr;

}

//wchar to char

char Char(WCHAR string)

{

char chr;

chr=new char[wcslen(string)+1];

memset(chr, 0, wcslen(string)+1);

for(unsigned int i=0; i<wcslen(string);

{

chr[i]=(unsigned char)string[i];

}

return chr;

}

至于CString 到 char 可以用GetString到 WCHAR 或char

注意返回的好像是一个 const 的 ,所以最好先强制转换一下。

然后再用上面的函数。

顺便说一下,大部分函数都支持宽字节,比如ifstream 、string

用宽字节就是 wifstream、wstring

CreateWindow的宽字节就是CreateWindowW

不用宽字节就是CreateWindowA

qq 648102143

在MFC中,一般要传递WCHAR 或 char 的都可以传递一个CString 对象。

首先从char 和 wchar_t 之间无法强制转换。CString 的GetString 函数会返回一个LPCWSTR 或 LPCSTR, 不管是哪个,用上面的函数都可以达到目的。

SetProperty(wchar_t strXmlName,HDC hdc)

{

if(strXmlName)// 如果strXmIName不是NULL

wcscpy(wszxmlpath,strXmlName);//执行宽字节拷贝

hParentbkdc = hdc;

}

您好,我来为您解答: opencv,先img = loadimage,然后imgwidth(),imgHeihgt()即是图像的宽和高 cximage中也有现成的函数。 希望我的回答对你有帮助。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12155540.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存