Я зробив C Console Application в Visual Studio для того, щоб отримати доступ до одного з COM портів з наступним кодом, і все пройшло добре.
#include <windows.h>
#include <stdio.h>
#include <conio.h>
/*DWORD dwBytesWrite = 25;
WriteFile(hSerial, "LOOOOOL", n, &dwBytesWrite, NULL);*/
/*
int main(void)
{
int n = 25;
char szBuff[25 + 1] = { 0 };
HANDLE hSerial;
DCB dcbSerialParams = { 0 };
COMMTIMEOUTS timeouts = { 0 };
DWORD dwBytesRead = 25;
dcbSerialParams.DCBlength = sizeof(DCB);
hSerial = CreateFile("COM6",
GENERIC_READ | GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
if (hSerial == INVALID_HANDLE_VALUE)
{
if (GetLastError() == ERROR_FILE_NOT_FOUND)
{
puts("cannot open port!");
return;
}
puts("invalid handle value!");
return;
}
if (!GetCommState(hSerial, &dcbSerialParams))
{
puts("error getting state");
return;
}
dcbSerialParams.BaudRate = CBR_9600;
dcbSerialParams.ByteSize = 8;
dcbSerialParams.StopBits = ONESTOPBIT;
dcbSerialParams.Parity = NOPARITY;
if (!SetCommState(hSerial, &dcbSerialParams))
{
puts("error setting port state");
return;
}
timeouts.ReadIntervalTimeout = 30;
timeouts.ReadTotalTimeoutMultiplier = 100;
timeouts.ReadTotalTimeoutConstant = 100;
if (!SetCommTimeouts(hSerial, &timeouts))
{
puts("timeouts setting fail!");
}
while (1){
if (!ReadFile(hSerial, szBuff, n, &dwBytesRead, NULL)){
puts("serial read error fail!");
return;
}
else
{
printf("%s\n", szBuff);
}
}
getchar();
return 0;
}
Тепер мені потрібно було зробити проект DLL, і він дав мені наступну помилку: "не може відкрити порт!"
Будь-яка ідея, чому? Дякую
Питання, специфічні для програмування та розробки програмного забезпечення, не підлягають темі, див Які теми можна запитати тут? . Спробуйте Переповнення стеку але, будь ласка, спочатку прочитайте Як мені поставити хороше запитання? .
—
DavidPostill
першою проблемою є бродячий '/ *' на рядку перед 'int main ()'
—
user3629249
будь ласка, відхиліть код для зручності чи ясності
—
user3629249
багато "повернення"; оператори в функції main () кожна і кожна невірна, оскільки main () оголошується для повернення int
—
user3629249