微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法在 SetCommState 中创建 DCB

如何解决无法在 SetCommState 中创建 DCB

我正在用 C++ 编写 GTP-180 收据打印机,但在创建 DCB 时出错

我从这里拿走了代码
http://members.ee.net/brey/Serial.pdf

#include <atlstr.h>
#include <windows.h>
#include <string>
#include <IOSTREAM>
#include <tchar.h>
#include <stdio.h>

using namespace std;

void WriteComPort(CString PortSpecifier,CString data)
{
    HANDLE hSerial;
    DWORD byteswritten;

    hSerial = CreateFile(CString("COM5"),GENERIC_READ | GENERIC_WRITE,OPEN_EXISTING,FILE_ATTRIBUTE_norMAL,0);

    DCB dcbSerialParams = { 0 };
    dcbSerialParams.Baudrate = CBR_110;
    dcbSerialParams.fDtrControl = DTR_CONTROL_ENABLE;
    dcbSerialParams.ByteSize = 8;
    dcbSerialParams.StopBits = OnesTOPBIT;
    dcbSerialParams.Parity = nopARITY;
    SetCommState(hSerial,&dcbSerialParams);
    WriteFile(hSerial,data,1,&byteswritten,NULL);
    CloseHandle(hSerial);
}

int main()
{
    WriteComPort("COM5","\\x1b\\x69");
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。