C语言中参数传递问题,求解

lang14 2012-03-20 03:03:27

BYTE buff[3]={0x12,0x45,0x78};
char temp[8];
HexToBinary(buff[0],temp);
上面的我是放在一个函数里面,下面的是一个十六进制转二进制的函数
void HexToBinary(BYTE value,char *buff)
{
itoa(value,buff, 2);
}

为什么调用 不成功呢??我的目的是想让buff="00010010" 也就是0x12
...全文
147 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
maiwst 2012-03-20
  • 打赏
  • 举报
回复
你先重新建一个空的控制台程序项目,把这段程序跑一下,如果能过,那应该是你的mfc工程有问题,参照下这个帖子吧:ht tp: //apps.hi.baidu.com/share/detail/534372
lang14 2012-03-20
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 maiwst 的回复:]
真遗憾,我用的是vs2008,跑你的代码完全没问题。但总觉得不是这个问题
[/Quote]
我也觉得这个问题好奇怪
maiwst 2012-03-20
  • 打赏
  • 举报
回复
真遗憾,我用的是vs2008,跑你的代码完全没问题。但总觉得不是这个问题
lang14 2012-03-20
  • 打赏
  • 举报
回复
如果用一个函数写就可以,比如
void fun()
{
BYTE buff[3]={0x12,0x45,0x78};
char temp[8];
char sztemp[128] ={0};
sprintf(sztemp,"%08s",itoa(buff[0],&temp[0], 2));
}
这样的话得到的结果是00010010,这个是对的,
不过我想用函数调用的方法做
fun()
{
HexToBinary()
}

HexToBinary()
{
}
这样就得会报错,感觉好奇怪
这回应该懂我的意思了吧
补充一下,我用的是VC6
maiwst 2012-03-20
  • 打赏
  • 举报
回复
楼主,我用你的代码得到的结果是10010,不是00010010,不知道你说的调试不成功是什么意思,编译不过么?而且如果你想要得到00010010,temp数组应该是9位吧
lang14 2012-03-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 gameslq 的回复:]
C/C++ code
void HexToBinary(BYTE value,char *buff)
改为
void HexToBinary(BYTE value,char *buff)
{
char sztemp[128] ={0};

sprintf(sztemp,"%08s",itoa(value,buff, 2));
strcpy(buff,szte……
[/Quote]
这位大哥,如果放在一个函数里面的话是可以的,但是用函数调用 的话就有错误
error LNK2001: unresolved external symbol "public: void __thiscall CMy00Dlg::HexToBinary(unsigned char,char *)" (?HexToBinary@CMy00Dlg@@QAEXEPAD@Z)
Debug/00.exe : fatal error LNK1120: 1 unresolved externals
不知道是怎么回事,好纠结。。。。。
lang14 2012-03-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 hb19820102 的回复:]
看楼主的代码让人雾置云山啊

char sztemp[128] = {0};
itoa (sztemp, (int)0x12, 2);

这样不就行了吗?
[/Quote]
大哥,在一个函数里面是可以的,我也试过,是得的,,不过我想用函数调用就出错了
  • 打赏
  • 举报
回复
看楼主的代码让人雾置云山啊

char sztemp[128] = {0};
itoa (sztemp, (int)0x12, 2);

这样不就行了吗?
shn521 2012-03-20
  • 打赏
  • 举报
回复
我这里显示的是10010啊
gameslq 2012-03-20
  • 打赏
  • 举报
回复
void HexToBinary(BYTE value,char *buff)
改为
void HexToBinary(BYTE value,char *buff)
{
char sztemp[128] ={0};

sprintf(sztemp,"%08s",itoa(value,buff, 2));
strcpy(buff,sztemp);
}
另外char temp[8];
改为
char temp[9];
gameslq 2012-03-20
  • 打赏
  • 举报
回复
void HexToBinary(BYTE value,char *buff)
改为
void HexToBinary(BYTE value,char *buff)
{
char sztemp[128] ={0};

sprintf(sztemp,"%08s",itoa(value,buff, 2));
strcpy(buff,sztemp);
}
另外char temp[8];
改为
char temp[9];

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧