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