首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

windows application 16进制转换的有关问题

2012-03-12 
windows application 16进制转换的问题我用的是 c++Builder 2010在一个windows application 中需要将一个1

windows application 16进制转换的问题
我用的是 c++Builder 2010

在一个windows application 中需要将一个10进制“DWORD”转换为16进制

用如下方法

C/C++ code
DWORD szParam;sscanf(szParam,"%x",szParam);会提示说E2034 Cannot convert 'unsigned long' to 'const char *'Type mismatch in parameter '__buffer' (wanted 'const char *', got 'unsigned long') 


还要涉及到unsigned long 和 char的转换

有没有什么更简单的方法呢?谢谢各位前辈


[解决办法]
sscanf需要第一个参数是字符串。
char str[100];
unsigned long a;
sprintf(str,"%ld",a);
sscanf(str,"%x",a);
其实我不明白lz为什么要这么做?得到16进制的形式但是值没变阿。。。
[解决办法]
DWORD a = 0x12345678;
char buffer[32];
sprintf(buffer, "%x", a);
printf("%s\n", buffer);

[解决办法]
BCB2010的话,要想一个dword以16进制显示在MEMO中可直接用

Memo1->Lines->Add(IntToHex(szParam,8));

热点排行