读书人

windows application 16进制转换的有关

发布时间: 2012-03-12 12:45:33 作者: rapoo

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));

读书人网 >C++

热点推荐