c++/MFC类的声明和定义
在头文件(*.h)
class Test
{
UINT a1;
int b1;
Void test();
}
在源文件(*.cpp)
viod Test::test()
{
******;
}
接着在其它文件调用Test类时,现在其余文件的头文件进行该类的初始化
在头文件(APP.h)
//初始化程序
Test Scom;
Scom.a1 = 5;//注意初始化时,这个值必须是已经存在的,不能从编辑框获得
Scom.b1 = 10;
在源文件(APP.CPP)
//程序应用
APP::BUTTEN()
{
Scom.a1;
Scom.test;
}
总结:
1.1新创建的类对象,如果有定义的参数没有进行初始化,则在新创建一个类对象时,要对其没有初始化的参数进行初始化,方便后面调用。这个初始化一般在应用的源文件(.APP)进行。
1.2针对之前一直出现句柄传递出错问题,主要是因为我将句柄胡乱赋值,其实,只要在应用程序中创建一个类对象,然后在直接调用就行,不用对类对象的句柄进行初始化,调用open()函数,就会自动对句柄进行复制。
图1 句柄传递出错
二、进行程序的debug调试时,一定要细心、仔细一个个断点设置。怀疑哪里出问题,就直接设置一个断点,然后查看有没红色跳出,如果有红色跳出,则表明该语句出错。同时,也要清楚每一条语句的意思,不然无法进行调试。
我之前的OpenCom()函数,创建句柄语句CreateFile(_T(“COM4”),…..),该语句为正确语句。之前的错误是:ComName.Format(_T("COM%d",m_ComNo))
m_hComm = (HANDLE)CreateFile(_T("COM4:"), //正确,创建窗口函数,不能直接用ComName.Format(_T("COM%d", m_ComNo));在vs2013版本上
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,
NULL);