您的位置:首页 > 编程语言 > C语言/C++

使用VC++6.0以MFC框架写一个串口通信程序

2017-05-02 00:00 609 查看
先给的百度文库的链接https://wenku.baidu.com/view/3855d8f4c77da26925c5b0db.html。良心文章,我就是跟着他一步步做的,很讲究,不想其他文章一次性把代码贴出来,能跑就行,不能跑拉倒。这个文章教一步写一步,写好一块就让你运行调试一下。但是VC++本身有几个坑还需要大家注意一下。

第一,VC++不能打开工程文件

http://blog.csdn.net/he_qiao/article/details/8245693

据说VC++6.0与Windows7不兼容,但不知道是真是假。不过就我在win7上装VC的经历而言,的确感觉问题不少。一开始下载的几个版本,在编译时总是出现一些错误,也不知道问题出在哪儿。后来在网上找了一个据说是与win7兼容的版本,编译时能通过,不出错误,只是在用<ctrl-o>组合键打开文档或者点击File|open时,总是会崩溃掉。下面就是这个问题的解决方法

下载Filetool.exe,解压。



用VC6.0打开FileTool.dsw文件,然后直接编译。一般不会出错。然后在目录:

C:\Users\hq\Desktop\test\FileTool\Debug会生成一个Filetool.dll文件。



然后把这个文件放到目录:

D:\ProgramFiles\Microsoft Visual Studio\Common\MSDev98\AddIns然后再单击Tools|Customize;



出现对话框,然后单击对话框上的:Keyboard,在下面的下拉列表中选择File,然后在下面的选项中选中FileOpen,删除快捷键。



然后点击右上方的Add-ins andMacro Files,点击浏览,选择刚刚编译出来的FileTool.dll,在选项上画上勾。



这时候应该会出来连个图标,如下:



这两框中的两个按钮就可以用来替换VC中导致崩溃的那连个按钮,一个是向Project中添加文件,一个是打开文件。可以将这两个按钮拉到工具栏上。



这样就OK了

第二,Unhandled exception in ***.exe(MFCO42D.dll)0xC00000005:Access Violation

http://www.cnblogs.com/dartagnan/archive/2010/10/13/2003609.html

一般情况下,我们开发的MFC程序,程序一般要用到VC中关于MFC的库,其形式是.lib和对应的.dll,在工程的设置里面,project->setting->general里,有"Using MFC in a static library"或者是"Using MFC in a shared DLL",一般开发时,如果工程只是一个单独的程序,一般我们会使用"Using MFC in a static library",这样的话,编译成功后,会只有一个.exe就可以了,到了没有装MFC的机子,也可以正常用,如果不这样的话,就得把几个重要的MFC的dll和.exe放在一起才能使用,反而觉得麻烦,而且整体程序会比较大。

出现该问题的操作上的原因是:没有把工程设置为“Use MFC in a Static Library”。
解决方法:
1)点击VC6.0工具栏上的【Project】 –> Setting –> 在General选项卡:选择”Use MFC in a Shared DLL” –> OK,如图(2)所示:



2)再点击工具栏上的【Build】 –> Rebuild All 即可

第三,ComboBox不能添加int型变量http://lensys.blog.sohu.com/164716959.html

按着上面的教程上,,那么如何添加呢?

首先在TestComboBoxDlg.h文件中下处添加下列语句:

// Dialog Data
//{{AFX_DATA(CTestComboBoxDlg)
enum { IDD = IDD_TESTCOMBOBOX_DIALOG };
int m_combo; //所添加语句
// NOTE: the ClassWizard will add data members here
//}}AFX_DATA

然后再TestComboBoxDlg.cpp文件中添加下列语句:

CTestComboBoxDlg::CTestComboBoxDlg(CWnd* pParent /*=NULL*/)
: CDialog(CTestComboBoxDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CTestComboBoxDlg)
// NOTE: the ClassWizard will add member initialization here
m_combo = -1; //所添加语句
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CTestComboBoxDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CTestComboBoxDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
DDX_CBIndex(pDX, IDC_COMBO, m_combo); //所添加语句
//}}AFX_DATA_MAP
}

到此为止,你就为ComboBox控件添加了一个int变量。

第四,ComboBox下拉列表不显示数据或只显示一行

http://blog.sina.com.cn/s/blog_879a9e660100tduq.html

正确添加了数据,但是在运行时点击Combo Box却不显示数据,其实原因很简单,在使用Combo Box控件时,有一个显示列表区域大小的设置,默认的显示区域太小,故无法显示数据。只要将鼠标在Combo Box的下三角上单击后,出现下拉的图标,向下拉下一个显示列表的区域即可。





至此,部分小问题解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  VC++6.0 串口助手