使用串口类SerialPort写串口程序
在一个动态库中调用这个类,serialPort.h
SerialPort类中定义了一个enum
class CSerialPort : public CObject
{
public:
enum Parity
  {    
    EvenParity,
    MarkParity,
    NoParity,
    OddParity,
    SpaceParity
  };
//General Methods
  void Open(int nPort, DWORD dwBaud = 9600, Parity parity = NoParity, BYTE DataBits = 8, 
            StopBits stopbits = OneStopBit, FlowControl fc = NoFlowControl, BOOL bOverlapped = FALSE);}
然后我在一个DLL中调用这个类,#include "serialPort.h"
打开这个串口,在函数OpenPort中调用Open函数
定义一个serialPort *port = new serialPort;EXPORT int OpenPort(int iSerial, int iBaudRate,  int iParityCheck, int iDataBit, 
int iStopBit, int iFlowControl, BOOL bTransmittalMode)
注意第三个函数是整数类型,我在OpenPort中怎么调用Open?
EXPORT int OpenPort(int iSerial, int iBaudRate,  int iParityCheck, int iDataBit, 
int iStopBit, int iFlowControl, BOOL bTransmittalMode)
{
    //比如,现在的问题是第三个参数没有搞定
    port->Open();
}

解决方案 »

  1.   

    http://www.graphics.net.cn/php/022/083.html看下就晓得了
      

  2.   

    enum Parity
    {
    EvenParity,
    MarkParity,
    NoParity,
    OddParity,
    SpaceParity
    };
    这样声名的结果就是
    EvenParity=0,MarkParity=1,NoParity=2,OddParity=3,SpaceParity=4
      

  3.   


    enum Parity
      {    
        EvenParity,
        MarkParity,
        NoParity,
        OddParity,
        SpaceParity
      };
    这段代码放到类定义外面,调用函数时写:
    open(xx,xx,Parity.xxx,...)
    就ok了。
      

  4.   

    Sorry,the code above isn't be tested.
    you should use typedef as below:
    typedef enum Parity
     {    
        EvenParity,
        MarkParity,
        NoParity,
        OddParity,
        SpaceParity
      }PY;
    And then the right usage is:
    open(xx,xx,(PY)0,...)The (PY)0 here is equal to EvenParity.