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()函数,就会自动对句柄进行复制。

c++/MFC类的声明和定义

图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);