在使用Windows SDC的IIS SDK部分的Admin Base Object时,IIS 的Metabase中的属性值都以unsigned char *类型储存,取出后用cout<<输出的形式为字符和'
'相间的形式,不知谁知道如何使unsigned char* 类型转换到char *类型。 在使用Windows SDC的IIS SDK部分的Admin Base Obje
在使用Windows SDC的IIS SDK部分的Admin Base Object时,IIS 的Metabase中的属性值都以unsigned char *类型储存,取出后用cout<<输出的形式为字符和'\0'相间的形式,不知谁知道如何使unsigned char* 类型转换到char *类型。
9 个解决方案
#1
强制转换呀!
#2
强制转换没用,vc会告诉你“无法将unsigned char*转换为const char*”
#3
写一个函数不就可以了。
len为字符串的长度
chartobyte(char *a,BYTE *b,int len)
{
for(int i=0;i<len;i++)
b[i]=(BYTE)a[i];
}
len为字符串的长度
chartobyte(char *a,BYTE *b,int len)
{
for(int i=0;i<len;i++)
b[i]=(BYTE)a[i];
}
#4
可以强制转换呀!!!
害的我还特地试了一下,结果是可以。把Warning Level调到4都没问题。
害的我还特地试了一下,结果是可以。把Warning Level调到4都没问题。
#5
to spiker:
分两步转:
unsigned char* s;
const char* p = (const char*)(char*)s;
分两步转:
unsigned char* s;
const char* p = (const char*)(char*)s;
#6
事实证明,转换是可以的,但有个问题,举例:我从IIS的Metabase中取出的ftp服务器的名字如果是"myftp",直接输出和转换后输出都成了"m",只有做一个循环单个字符输出才行,那样子是"m y f t p",空格部分应该是"\0"。既然widows自己把这些值的类型默认为unsigned char,那么没理由没有针对的转换函数。而且我有一点不得其解,char*指向的是字符串,又不用作数值计算,为什么需要定义为unsigned类型。
#7
再说一下,好像unsigned char*指定的是Unicode类型,但我用过的Unicode与Ansi转换汉输如WideCharToMultiByte和_com_util::ConvertBSTRToString都提示了相似的错误信息,不得其解,如WideCharToMutiByte的用法
unsigned char* comment;
char *temp;
WideCharToMultiByte(CP_ACP, 0, comment, -1, temp, 256, NULL, NULL);//第六个参数不是很确定
编译后:
error C2664: 'WideCharToMultiByte' : cannot convert parameter 3 from 'unsigned char *' to 'const unsigned short *'
望赐教
unsigned char* comment;
char *temp;
WideCharToMultiByte(CP_ACP, 0, comment, -1, temp, 256, NULL, NULL);//第六个参数不是很确定
编译后:
error C2664: 'WideCharToMultiByte' : cannot convert parameter 3 from 'unsigned char *' to 'const unsigned short *'
望赐教
#8
再强制转换一下看看:
char temp[256];
WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)comment, -1, temp, 256, NULL, NULL);
char temp[256];
WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)comment, -1, temp, 256, NULL, NULL);
#9
非常感谢,终于能用了,但是unsigned char*不是Unicode吗,为什么还要转换一下呢。如果不是Unicode,那又是什么格式呢,我在参考书上一直找不到相关信息。
'相间的形式,不知谁知道如何使unsigned char* 类型转换到char *类型。 在使用Windows SDC的IIS SDK部分的Admin Base Obje