1.有这样一串 16进制的字符串
02 31 30 20 20 20 20 31 32 30 20 20 20 20 30 30 0D
想截取到char中,成这样cChar1 = '02';
cChar2 = '31'
cChar3 = '30'
cChar4 = '20'
...
看看有更好的方法么?2.目前用的方法
istrstream s(buf);
char cT[2];
char cA[2];
char cB[2];
char cC[2];
s.seekg(n+0);
s >> cT >> cA >> cB >> cC;
但是在 /MD 也就是 Release下, 可以取到值,但是我想把 cA,cB取到的16进制的值换成10进制并转成二进制后就会出现问题.
用 /MDd,就可以.
在 /MD的版本下,打印出的信息如下.nA.,nB为int型
sscanf(cA,"%2x",&nA);
sscanf(cB,"%x",&nB);
输出: ca= 1, cb=30, nA=0, nB=48
不知道大家注意到没, cA前面的 3 少了,但是用 /MDd版本,就是正常输出
ca= 31, cb=30, nA=0, nB=48对了,这个程序是 共享的dll程序,试过/MT 不行.
02 31 30 20 20 20 20 31 32 30 20 20 20 20 30 30 0D
想截取到char中,成这样cChar1 = '02';
cChar2 = '31'
cChar3 = '30'
cChar4 = '20'
...
看看有更好的方法么?2.目前用的方法
istrstream s(buf);
char cT[2];
char cA[2];
char cB[2];
char cC[2];
s.seekg(n+0);
s >> cT >> cA >> cB >> cC;
但是在 /MD 也就是 Release下, 可以取到值,但是我想把 cA,cB取到的16进制的值换成10进制并转成二进制后就会出现问题.
用 /MDd,就可以.
在 /MD的版本下,打印出的信息如下.nA.,nB为int型
sscanf(cA,"%2x",&nA);
sscanf(cB,"%x",&nB);
输出: ca= 1, cb=30, nA=0, nB=48
不知道大家注意到没, cA前面的 3 少了,但是用 /MDd版本,就是正常输出
ca= 31, cb=30, nA=0, nB=48对了,这个程序是 共享的dll程序,试过/MT 不行.
CString存储的?
用/MT不行, 我试了。同样的错误。
ca= 1, cb=30, nA=0, nB=48上面的ca 前面会少个 3(红色处), 请看完整体内容,不知道是不是我表述的不清楚。
我目前是在 编译选项里在 Release里把 /MD换成 /MDd来编译调用,不知这样把dll放到客户那去会不会运行不成功.
我也回你邮件了, 你看下.
可能是我描述太简单了. 另外想问下,用 /MDd编译出来的dll放到现场环境(没装VC6.0) 需不需再单独加别的dll或.lib