swprintf的二个参数问题LPWSTR lpSignal;
CString m_strReceive, m_str;swprintf(lpSignal, m_strReceive);_____________________________________________________________________
MSDN:
int swprintf( wchar_t *buffer, const wchar_t *format [, argument] ... );Parameters
buffer Storage location for output.
format Format-control string.
argument Optional arguments.
_____________________________________________________________________问题:
1. LPWSTR 是一个指向宽字符的指针类型 吧?2.
swprintf(lpSignal, m_strReceive /*这个参数,为什么CString 类型也行? */);swprintf(m_str /*这个参数,为什么CString 类型不行? */, m_strReceive);
CString m_strReceive, m_str;swprintf(lpSignal, m_strReceive);_____________________________________________________________________
MSDN:
int swprintf( wchar_t *buffer, const wchar_t *format [, argument] ... );Parameters
buffer Storage location for output.
format Format-control string.
argument Optional arguments.
_____________________________________________________________________问题:
1. LPWSTR 是一个指向宽字符的指针类型 吧?2.
swprintf(lpSignal, m_strReceive /*这个参数,为什么CString 类型也行? */);swprintf(m_str /*这个参数,为什么CString 类型不行? */, m_strReceive);
解决方案 »
- 什么是"previleged instruction"?
- 关于MFC使用多语言的问题
- DLL能导出struct吗?
- Cprogressctrl 如何能够自己控制步进精度?
- 请问:那高手知道OSD是什么???
- 关于CSocket 实现TCP的功能-----谁能详细说一下吗?
- 请教一下异步通讯的概念
- 有谁能够不用工具也能把*。CLP文件转化为BMP或者画图能够打开的文件格式(马上给分)。
- GetProcAddress不能返回 CALLBACK 函数地址?
- 退出怎么搞.我的一个按钮函数为void类型.但是不知道在里面加什么东西,可以从程序退出.
- COM组件,加上什么实现以后,就能称为是COM+了?
- 调用C运行时库没有要求CRT_Initialize()之类的函数,为什么COM要CoInitialize()
const wchar_t *
类型,CString 有个LPCWSTR操作符,可以产生LPCWSTR类型,即const wchar_t *类型,所以可以使用CString对句作为参数。而第一个参数是
wchar_t *
类型,CString并没有到此类型的转换途径,故参数不被接受。可以使用m_str.GetBuffer(MAX_PATH)来得到
wchar_t *
类型,才可以被函数接受。
1. LPWSTR 是一个指向宽字符的指针类型 吧?
LPWSTR是wchar_t字符串,也就是unicode编码,就是宽字符2.
swprintf(lpSignal, m_strReceive /*这个参数,为什么CString 类型也行? */);
CString 重载了转换操作, 能转换成LPWSTR 类型,,这是C++的基础啊swprintf(m_str /*这个参数,为什么CString 类型不行? */, m_strReceive);
CString 第二个参数是常量,可以转换的,第一个参数不是常量,要获得缓冲区。
swprintf(m_str.GetBuffer(50),……
C++ 课本上没讲这些吧?VS MSDN 文档中如何查到这些? (什么关键字查)