怎么把程序中的字符串变量的内容作为文本字符串贴到代码中?

一名程序员 2008-12-03 03:00:58
我有如下代码:
		char ch[] = "UINT";
DWORD f = 100;
char buf[50] = "";
memset(buf,0,50);
#define TYPE(n) (#n)
// 以下代码希望展开后生成:
// sprintf(buf,"%d",(UINT)f);
sprintf(buf,"%d",(TYPE(ch)f);
AfxMessageBox(buf);*/

但是有问题。关键是怎么把字符串"UINT"展开后写入代码?

我的程序的需求是这样的。原始数据的格式是
struct
{
char *type;
union
{
DWORD dw;
LPBYTE lp;
}data;
};

其中type是类似"UINT", "double","char"等VC中变量类型的名称的字符串。而data是实际的数据。现在想把数据仿照上面的代码显示出来。问该怎么办?
...全文
43 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
一名程序员 2008-12-04
谢谢Mackz的分享!
回复
菜牛 2008-12-03
你的方法无法实现的;把type和所有类型逐个比较,然后输出数据即可,比如:
if ( _strnicmp( type, "UINT", 4 ) == 0 )
printf( buf, "%ud", dw );
else if ( _strnicmp( type, "double", 6 ) == 0 )
printf( ...
回复
Conry 2008-12-03
你可以看一VARIANT是怎么定义的,应该满足你的需求
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2008-12-03 03:00
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……