我现在需要把BMP的数据读出来,从串口发送出去。现在基本过程都已完成了,就是遇到一个问题:
读出的BMP数据(存于buffer里)前几个字节都是0x00,我用以下代码转换成CString时发现buffer前面的几个0x00都没有了。请高手指教,急用!! for(int k=0;k<=info.bmiHeader.biSizeImage;k++) //将数组转换为Cstring型变量
{
BYTE bt=*(buffer+k); //字符型
str2.Format("%c",bt); //将字符送入临时变量strtemp存放
m_strTXData+=str2; //加入发送编辑框对应字符串
}
m_ctrlComm.SetOutput(COleVariant(m_strTXData)); //串口发送
读出的BMP数据(存于buffer里)前几个字节都是0x00,我用以下代码转换成CString时发现buffer前面的几个0x00都没有了。请高手指教,急用!! for(int k=0;k<=info.bmiHeader.biSizeImage;k++) //将数组转换为Cstring型变量
{
BYTE bt=*(buffer+k); //字符型
str2.Format("%c",bt); //将字符送入临时变量strtemp存放
m_strTXData+=str2; //加入发送编辑框对应字符串
}
m_ctrlComm.SetOutput(COleVariant(m_strTXData)); //串口发送
解决方案 »
- VC++记录集查询m_pRecordset->错误
- 第二次打开非模态对话框时出错
- 求高手指点,关于对流媒体,图像等数据写入文件的问题
- 请求赐教:怎样把CStringArray所保存的字符串组在CListBox控件中显示出来。
- 使用ado 的 Recordset对象,Open方法的第一个参数用Command对象的问题?
- 谁能帮帮菜鸟 谢谢大家啊
- 高手请进来救命呀
- 不明白的地方:COM既然已经注册了,那为什么还需要一个COM的.h文件呢?那不是同样将一些东西暴露给COM的用户了吗?
- ip报转发
- 对一个网格模型,用opengl如何实现矩形框、套索等选取功能
- connect 10061是怎么回事?
- 如何从SWF文件里面提取每帧数据?高手请帮忙,不胜感激
如果用0x00表示,后面代表的是一个整数。怀疑你把他转化为字符串了。而CString保存的是字符串,所以这两个类型就不一样。
你可以用CArray<BYTE,BYTE>
目前我只知道这个函数m_ctrlComm.SetOutput(COleVariant(m_strTXData));
我现在的目的是将 unsigned char buffer[800](里面有0x00,0x20,0x1b等)中的所有的数据
从串口m_ctrlComm.SetOutput()发送出去。
具体怎么把buffer[800]转换成m_ctrlComm.SetOutput()能用的参数类型我就不会了。
// x.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include "x.h"
#include <atlsafe.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// 唯一的应用程序对象CWinApp theApp;using namespace std;int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRetCode = 0; // 初始化 MFC 并在失败时显示错误
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
// TODO: 更改错误代码以符合您的需要
_tprintf(_T("错误: MFC 初始化失败\n"));
nRetCode = 1;
}
else
{
// TODO: 在此处为应用程序的行为编写代码。 CComSafeArray<unsigned char> arr(800);
unsigned char buffer[800] ={ 0 ,1,2,3};
for ( int i=0;i<800;i++)
arr.SetAt( i , buffer[i] ); VARIANT var;
var.vt = VT_BYREF|VT_UI1;
var.parray = arr.Detach(); COleVariant olevar( var ); puts("a"); } return nRetCode;
}
myStr + = ch;
myStr + = ch;int i = myStr.GetLength();发现了吗? i==3了。我想,你应该知道 接下来,怎么做了。