c++ - ReadFile(m_hComm, &cadena[rebut]==0, 1, &recibiendo, NULL);

标签 c++ c

大家早上好。我正在编写一个程序,通过空模型串行 RS-232 电缆与两台 PC 进行通信。其中一台 PC 装有 MS-DOS 5.0 操作系统,另一台装有 Windows。我需要我的程序从具有 MS-DOS 的程序接收信息。该程序是用c++编写的。我在 IDE DEV-C++ 中编译它,它给出了以下错误: 71 无法将参数 2 ' 的 bool 'to void *' 转换为 BOOL ReadFile(void *, void *, DWORD, DWORD *, _OVERLAPPED *) '.如果有人有答案,请告诉我。 代码是:

#include <stdio.h>
#include <windows.h>
#include <iostream>
#include <tchar.h>
#include <afx.h>
#include <afxwin.h>
#define STRING_SIZE 100
#define Nombre1 "datahemat.txt"
FILE *fp;
int b = 10;
using namespace std;
unsigned long rebut = 0, recibiendo = 0;
char cadena [512];
int i = 0;
int main(void)
{
/* Este módulo se encarga de abrir el puerto serial para comunicarse*/
    HANDLE m_hComm;
    DWORD dwBytesRead;
    DWORD dwBufferSize;
    TCHAR szBuffer [STRING_SIZE];
    dwBufferSize = sizeof(TCHAR) * STRING_SIZE;
    m_hComm = CreateFile("Com1",GENERIC_WRITE | GENERIC_READ, 
    FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    if (m_hComm == (HANDLE)-1){
        printf ("Error abriendo el puerto serie COM1");
        /* return; */
    }
    /* Este módulo de encerga de configurar el puerto segun el protocolo
    Beckman Coulter */
    DCB dcb;
    dcb.DCBlength = sizeof(DCB);
    GetCommState(m_hComm, &dcb);
    dcb.BaudRate = CBR_9600;
    dcb.ByteSize = 8;
    dcb.Parity = ODDPARITY;
    dcb.fParity = TRUE;
    dcb.StopBits = ONESTOPBIT;
    dcb.fBinary = TRUE;
    SetCommState (m_hComm,&dcb);
    fp = fopen(Nombre1, "w");
    //Chequeando si el archivo existe.
    if (fp == NULL) {
        perror("El Archivo no pudo abrirse para escritura\n");
    }
    else
    {
        printf("Archivo Creado\n");
    }
    fprintf (fp, " %d ", b) ;
    fclose(fp);
    do {
        rebut = 0;
        do {
            ReadFile(m_hComm, &cadena[rebut]==0, 1, &recibiendo, NULL);
            if (cadena[rebut]==0) break;
                rebut+=recibiendo;
        } while (rebut<512);
        f.Write(Cadena, rebut);
    } while (rebut==512);
    cout << " Se leyeron " << dwBytesRead << " bytes. " <<"Buffer; " <<           szBuffer << endl;
    CloseHandle (m_hComm); 
}

谢谢大家!!!...

最佳答案

从该行中删除 ==0,即:

ReadFile(m_hComm, &cadena[rebut], 1, &recibiendo, NULL);

关于c++ - ReadFile(m_hComm, &cadena[rebut]==0, 1, &recibiendo, NULL);,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49494033/

相关文章:

c++ - 使用函数外部的 const 变量计算时,Constexpr 不会被求值

c++ - 除了栈和堆模型之外,C++ 还实现了哪些其他形式的自动和动态存储?

c - 文件到c中的动态数组

c - 链表问题

c++ - 创建最小化重叠窗口 (Win32)

c++ - fatal error : opencv2/sfm. hpp : no such file or directory #include <opencv2/sfm. hpp>

c++ - 如何在 C++ 中打印通用 map

c++ - 无法编译用 Boost::Spirit 库编写的简单解析器

c - 解析器中的 Bison 错误

c - 为什么我的 exe 文件在 cmd 中可以正常工作,但双击却无法正常工作?