- 浏览: 152739 次
- 性别:
- 来自: 北京
最新评论
-
kenloveyuan:
...
牛人博客收集中...
文章列表
1.建立项目
2.在项目中插入MSComm控件
3.利用ClassWizard定义CMSComm类控制变量
4.在对话框中添加控件
5.添加串口事件消息处理函数OnComm()
6.打开和设置串口参数
7.发送数据
8.发送十六进制字符
9.在接收框中以十六进制显示
10 ...
1 MSComm介绍
在WINDOWS环境下,用户不能直接对PC的串行端口进行操作。Visual C++.NET中,通过使用微软公司提供的Microsoft Comm Control控件(简称MSComm),可以方便地实现PC与外部设备之间的串行通信,编程工作量相对较少。
2.Visual C++.N ...
一.想一进入程序,有默认的串口参数设置:
1.把参数值设定死
在OnInitDialog()函数里添加:
if (m_ctrlComm.GetPortOpen())
m_ctrlComm.SetPortOpen(FALSE);
m_ctrlComm.SetCommPort(1); // 选择com1
if (!m_ctrlComm.GetPortOpen())
m_ctrlComm.SetPortOpen(TRUE); // 打开串口
else
AfxMessageBox("cannot open serial port");
m_ctrlComm. ...
从串口接收数据,显示在Edit Box里:
void CMyDlg::OnOnCommMscomm1()
{
// TODO: Add your control notification handler code here
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len, k;
BYTE rxdata[2048];
CString strtemp;
if (m_ctrlComm.GetCommEvent() = ...
您要读的好书也绝非以下推荐的这些书哟,呵呵。
一句话,由于我们的时间、精力、金钱都是有限的,如何以最小的代价换得最大的收获。
经典好书分类热销榜
================================================================
1、Jav ...
调用DLL有两种方法:静态调用和动态调用. (一).静态调用其步骤如下: 1.把你的youApp.DLL拷到你目标工程(需调用youApp.DLL的工程)的目录下; 2.把你的youApp.lib拷到你目标工程(需调用youApp.DLL的工程)目录下; 3.把你的youApp.h(包含输出函数的定义)拷到你目标工程(需调用youApp.DLL的工程)目 录下; 4.打开你的目标工程选中工程,选择Visual C++的Project主菜单的Settings菜单; 5.执行第4步后,VC将会弹出一个对话框,在对话框的多页显示控件中选择Link页。然 后在Object/library modules ...
#pragma data_seg("flag_data") int count=0;#pragma data_seg()#pragma comment(linker,"/SECTION:flag_data,RWS")这种方法只能在没有def文件时使用,如果通过def文件进行导出的话,那么设置就要在def文件内设置而不能在代码里设置了。SETCTIO ...
一、Qt版本
我现在用的是4.5.2。好像前段时间4.6出来了。。一直想找个轻量、好用、简单、快速的UI库。实话实说Qt也不是很满足我的要求,不过还是比较好用的,运行库打包10m左右,加壳压缩一下3~5m左右,也还是在接受范围之内。
二、Qt安装
下载的opensource的Qt安装包。
在win32平台下自带mingw,用gcc编译。可以配合Eclipse+CDT开发。。不过开发效率实在是。。唉。。。折腾了一段时间——放弃。
在linux平台下,有deb包下载的,好像。。我记得我是既从Ubuntn repos上down过,也自己手动下载安装过,但还是窘于IDE。唉,一说到 ...
解决方案与项目:
从VC6之后VC系列就使用解决方案(Solution)来替代原来的工作空间,用于组织和管理多个相关的项目(Project)。
文章首先演示一个虚拟的解决方案和我们期望得到的目录结构,然后使用VC2008的项目设置功能 ...
以下是很多VC爱好者的学习经历,希望对大家有所帮助:
我记得我在网上是这么说的:先学win32的SDK,也就是API, 再学MFC,这么一来呢,就先有个基础,MFC是API的封装, 如果API用的熟了,MFC上手就轻松的多了。 我觉得呢,现在不 ...
一.预处理宏
1. 通用宏
VC6.0中:
Project Setting>C/C++>Preprocessor definitions
VC2005中:
项目属性;配置属性;C/C++;预处理器定义
WIN32:指明是Window 32系统的编译器,一般用作平台识别。
_MBCS/_UNICODE:指明该工程使用的字符集(多字节字符集/UNICODE)。
在VC6.0的“Project Setting>C/C++>Project Options”处将会有/D "_MBCS"或/D &qu ...
1.static TCHAR szAppName[] = TEXT("MyProg");
2.hIcon = LoadIcon(hInstance,szAppName);
原来的数值表示法是:
hIcon = LoadIcon(hInstace,MAKEINTRESOURCE(IDI_ICON));
LoadIcon 的第一个参数是指出资源来自哪个文件的实例句柄,使用hInstance表示该资源文件来自程序自己的.EXE 文件。LoadIcon 的第二个参数实际上被定义为指向字符串的指针。
宏 MAKEINTRESOURCE(把整数改制成资源串)生成 ...
/INCREMENTAL 选项控制链接器如何处理增量链接。
默认情况下,链接器以增量模式运行。若要重写默认增量链接,请指定 /INCREMENTAL:NO。
增量链接的程序在功能上等效于非增量链接的程序。不过,因为它是为后面的增量链接而准备的,所以增量链接的可执行 (.exe) 文件或动态链接库 (DLL):
大于非增量链接的程序,因为有代码和数据的填充。(填充允许链接器增加函数和数据的大小而不用重新创建 .exe 文件。)
可以包含跳转 thunk 以处理函数重定位到新地址。
注意
为了确保最终发布版本不包含填充或 thunk,请非增量链接您的程序。
若要增量链接而不管默认值,请指 ...
学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不明其所以然。如果不深入地学习和理解VC++,要想改正连接错误LNK2001非常困难。
初学者在学习VC++的过程中,遇到的LNK2001错误的错误消息主要为:
unresolved external symbol “symbol”(不确定的外部“符号”)
如果连接程序不能在所有的库和目标文件内找到所引用的函数、变量或标签,将产生此错误消息。一般来说,发生错误的原因有两个:
一是所引用 ...
Windows Common Controls
Win32 API中本身提供了Windows下许多常用的控件,称为Common Controls。 这些控件与Button、ComboBox等控件不同,不是在user32.dll中实现,而是在Comctrl32.dll中实现,相关的C++原型声明在commctrl.h中。
所以,在使用Win32 API编写Windows窗口应用程序时,如果在界面上用到了Common Controls,则必须在链接选项中包含comctrl32.lib库,并在程序初始化时调用InitCommonControls()函数,确保控件被加载。InitCommonCont ...