本人刚自学网络socket编程用来在客户端与服务器之间传递信息,在下面的句子中,HANDLE hFile=CreateFile(_T(filename),GENERIC_WRITE,0,0,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);发现必须给filename加_T()才可以将char*转化为LPCWSTR,但是编译后发先出现错误所_T找不到提示符,请问高人这如何改?
解决方案 »
- 磁盘监视的实现,能否获取到文件信息
- 客户端接收广播消息是不是要绑定IP为0.0.0.0才行啊
- Tab控件的内嵌属性页的edit里面的数据怎样获取呀???
- GetClientRect的问题?
- evc4程序怎么在pda上运行
- DirectShow视频捕捉奇怪的一个问题
- 这个问题很复杂吗?为何全网找不到答案
- 关于CTreeCtrl的GetItemData函数!
- 如何使程序运行时,图标显示在任务栏右边的凹框内?谢谢!
- 我想用WinInet类编一个简单的Web浏览器,可是却无法解决用户权限问题,通过代理服务器上网(要用户名和密码)
- vc6.0调试时,中程停止调试进程就关不掉
- 求助关于listbox控件的问题
GENERIC_WRITE,0,0,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);报错:“Lfilename”: 未声明的标识符。
请问是怎么回事啊
建议你找个已有的程序,里面带了_T这样的标识符的话,右键点击之,选择Go to Definition of _T
然后网上搜关于Unicode和ASCII的相关知识
_T(filename)被译成Lfilename,确实未声明,这和直接在_T()中写字符串是有区别的,还将继续了解关于Unicode和ASCII的相关知识
===================
有这么写的吗?
如果filename是常量,用_T的话, 也是写成_T("filename");
如果filename是一个变量的话,根本就不用_T或是L的,直接定义为TCHAR类型就行了。
是这样的,编程的时候最好使用Unicode编码,按照Unicode编码规范声明并定义变量,用这个变量的时候是不加_T或TEXT或L修饰的
这样写法不对,_T只能用于字符串常量,不能变量
有wchar_t 的定义
typedef unsigned short wchar_t;
可以说是16位