解决方案 »
- 请教一个切分窗口的问题
- 编译没错,建立EXE的时候出错,什么问题啊???急
- ComboBox 怎样设置成 只读?属性里好像没有
- 装VC后怎么解决上网出现错误的问题?
- D:\Program Files\Microsoft Visual Studio\VC98\LIB\dxerr9.lib : fatal error LNK11
- c++
- 寻Teach Yourself Yourself Visual C++ .NET in 21 Days(Davis Chapman著)的例程源码
- js可以改变dom元素的id并保存吗
- Who can tell me?下面的第1点是什么意思?该怎么做?
- 用MFC AppWizard生成程序框架时,我没有选择任何数据库支持,现在要用ODBC
- 如何在基于对话框的程序中,加入CImageList类的对象?
- 在线等!!怎么获得spin控件的点击上下箭头的事件
唉, 我是从哪里学来的#define _UNICODE, 丢脸了……
_UNICODE是针对C运行库而言的。
#define _UNICODE
#include <tchar.h>
#include <stdio.h>int main() {
TCHAR* buffer = "我是一个新手";
printf("%d\n", strlen(buffer));
}
lstrlen是计算字节数的#define _UNICODE 这个是c运行库中定义的
#define UNICODE 这个是window头文件中定义的同时定义这2个这样就可以了
不管定义什么 lstrlen都是12.因为ansi中这6个汉字都是每个字2个字节的。。
strlen 和 wcslen 都是6
#define UNICODE
#include <windows.h>
#include <stdio.h>int main() {
TCHAR* buffer = "我是一个新手";
printf("%d\n", lstrlen(buffer));
}
错了 误导了 汉字是2个字符所以strlen 和wcslen也是12
TCHAR就应该是wchar_t
嗯是6.。这回不会错了。。lstrlenA 是 计算字节数
lstrlenW 是 计算 WCHAR values for Unicode versions 也就是字符数
wcslen和 strlen是计算 字符 数所以 对于我是一个新兵
unicode下
lstrlen 是6 wcslen是6
ansi下
lstrlen 是12 strlen是12