C语言中参数传递问题,求解 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 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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]; 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]; 看楼主的代码让人雾置云山啊char sztemp[128] = {0};itoa (sztemp, (int)0x12, 2);这样不就行了吗? 这位大哥,如果放在一个函数里面的话是可以的,但是用函数调用 的话就有错误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不知道是怎么回事,好纠结。。 楼主,我用你的代码得到的结果是10010,不是00010010,不知道你说的调试不成功是什么意思,编译不过么?而且如果你想要得到00010010,temp数组应该是9位吧 如果用一个函数写就可以,比如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 你先重新建一个空的控制台程序项目,把这段程序跑一下,如果能过,那应该是你的mfc工程有问题,参照下这个帖子吧:ht tp: //apps.hi.baidu.com/share/detail/534372 文件名 编码??(文件名 变了???) 请教,如何向jpeg中写入属性 VC 里的堆栈怎么理解啊? 有关cvcamshift 高分求在richedit控件里插入gif图片源码??????????? 我做了一个ActiveX控件,请问怎么放Web服务器上啊? vc.net中,Release&Debug模式中共有多少编译与连接参数的不同 如何得到文件系统是是FAT还是NTFS? 有关VFW视频捕捉的问题 如何用vc写编辑mp3 得tags信息程序 URL里带IP,有些地方无法访问 问个可能比较少见的问题
改为
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];
改为
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];
itoa (sztemp, (int)0x12, 2);这样不就行了吗?
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
不知道是怎么回事,好纠结。。
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