小弟现在做一个串口通讯的程序,在数据的接收和显示阶段遇到了COleVariant转CString的问题。
这是相关的程序:
COleVariant myVar;
COleSafeArray safearray_inp;
............
myVar.Attach(m_Com.GetInput());
//variant_inp = m_Com.GetInput();
safearray_inp = myVar;
m_testReceive=(unsigned char*)safearray_inp.parray->pvData;
然后在一个编辑框里显示m_testReceive的内容,但是我发现当我发送的数据小于8个字时,编辑框能正常显示,但是当发送的数据超过8个字时,比如是10个字,只能显示最后两个数据:如发送12345678ab,在编辑框里只能显示ab,当发送12345678abcdefghij时,只能显示ij。我不知道这是为什么,大家能不能帮帮我
先谢谢了
这是相关的程序:
COleVariant myVar;
COleSafeArray safearray_inp;
............
myVar.Attach(m_Com.GetInput());
//variant_inp = m_Com.GetInput();
safearray_inp = myVar;
m_testReceive=(unsigned char*)safearray_inp.parray->pvData;
然后在一个编辑框里显示m_testReceive的内容,但是我发现当我发送的数据小于8个字时,编辑框能正常显示,但是当发送的数据超过8个字时,比如是10个字,只能显示最后两个数据:如发送12345678ab,在编辑框里只能显示ab,当发送12345678abcdefghij时,只能显示ij。我不知道这是为什么,大家能不能帮帮我
先谢谢了
m_testReceive=(unsigned char*)safearray_inp.parray->pvData;
====
为啥要这么做呢?
myVar.bstrVal不就是字符串了么
我照着做了
m_testReceive=myVar.bstrVal;但是还是不行啊
当我发送的数据小于8个字时,编辑框能正常显示,但是当发送的数据超过8个字时,比如是10个字,只能显示最后两个数据:如发送12345678ab,在编辑框里只能显示ab,当发送12345678abcdefghij时,只能显示ij