1 我如果采用UNICODE模式编译TCP/IP应用程序(基于SOCKET开发的),
但是服务器上的应用是16位的,例如WEB/ASP,
我怎么将UNICODE转成ANSI(ASCII)发送,我看了一些程序,发现都是使用
USE CONVERSION
T2A(XXXXXXXX)
A2W(XXXXXXXX)
或者再加个WIDECHARTOMULTIBYTE( ),
但是始终没有明白USE和T2X这2个宏究竟是什么作用?
看了MSDN里太简单了,没弄明白。
2 当我用SOCKET写个程序发送一个字符串出去时,
例如:
CString ss;
ss="abc%12,this is a test! %d";
我写了一个封装的函数SEND(LPCTSTR SS, SOCKET S)
当我用
SEND("abc%12,this is a test! %d",S)时没有错误发生。
可是用SEND(ss,S)出现了非法操作,为什么?
这里ss已经被强制转成了LPCTSTR,为什么会出错呢?
如何解决?
3 如何用WINSOCK编程读取网络邻居里一台电脑上的共享文件呢?(WIN SOCK 2)
加了密码的。
4 如何让我自己的程序出现ANSI UNICODE编译选择呢?
正常只有DEBUG和RELEASE2种,如何添加。
但是服务器上的应用是16位的,例如WEB/ASP,
我怎么将UNICODE转成ANSI(ASCII)发送,我看了一些程序,发现都是使用
USE CONVERSION
T2A(XXXXXXXX)
A2W(XXXXXXXX)
或者再加个WIDECHARTOMULTIBYTE( ),
但是始终没有明白USE和T2X这2个宏究竟是什么作用?
看了MSDN里太简单了,没弄明白。
2 当我用SOCKET写个程序发送一个字符串出去时,
例如:
CString ss;
ss="abc%12,this is a test! %d";
我写了一个封装的函数SEND(LPCTSTR SS, SOCKET S)
当我用
SEND("abc%12,this is a test! %d",S)时没有错误发生。
可是用SEND(ss,S)出现了非法操作,为什么?
这里ss已经被强制转成了LPCTSTR,为什么会出错呢?
如何解决?
3 如何用WINSOCK编程读取网络邻居里一台电脑上的共享文件呢?(WIN SOCK 2)
加了密码的。
4 如何让我自己的程序出现ANSI UNICODE编译选择呢?
正常只有DEBUG和RELEASE2种,如何添加。
不需要考虑那么多吧,还是象以前那样定义缓冲区,往里面規数据
至少 sprintf 和 swprintf 就不一样了
其实 Unicode 和 Ansi 的问题处理起来真的不象想象的那么麻烦
用于初始化用于转换的数据区(是在堆栈中分配的)字符串类型:
T:取决于_UNICODE符号有没有定义(也就是工程是否是Unicode的),若定义了,TCHAR就是
wchar_t,否则就是wchar
W:WCHAR就是wchar_t,等于OLECHAR
A:CHAR就是char
这样,T2W(x)就是将一个LPTCHAR转换为LPWCHAR的宏,其他情况类似