powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / не компилится
3 сообщений из 3, страница 1 из 1
не компилится
    #33899156
Ladi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему не компилится ошибка следующая
Error 4 error C2664: 'CreateFileW' : cannot convert parameter 1 from 'char [128]' to 'LPCWSTR'


#include <stdio.h>
#include <conio.h>
#include <windows.h>

//#define CreateFile CreateFileW

void main(int argc, char *argv[])
{
char COM[16], FileName[128];
DWORD BaudRate;
BYTE Buff[10];
DWORD nread,nwrite;

strcpy(COM, "COM1");
BaudRate = 1200;
strcpy(FileName, "file");

HANDLE port = CreateFile(COM, GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
if (port==INVALID_HANDLE_VALUE) {
printf("'%s' Open Error %d\n", COM, GetLastError());
exit(-1);
}

DCB dcb;
if (GetCommState(port, &dcb)) {
dcb.BaudRate = BaudRate;

dcb.ByteSize = 7; dcb.Parity = 0; dcb.StopBits = 0;

dcb.fBinary = 1;
dcb.fOutxCtsFlow = 0; // CTS output flow control
dcb.fOutxDsrFlow = 0; // DSR output flow control

dcb.fDtrControl = 0; // DTR flow control type
//
dcb.fDsrSensitivity = 0; // DSR sensitivity
dcb.fTXContinueOnXoff = 1; // XOFF continues Tx
dcb.fOutX = 0; // XON/XOFF out flow control
dcb.fInX = 0; // XON/XOFF in flow control
dcb.fRtsControl = 0; // RTS flow control
dcb.fAbortOnError= 0; // abort reads/writes on error
SetCommState(port, &dcb);
}

COMMTIMEOUTS touts;
if (GetCommTimeouts(port, &touts)) {
touts.ReadIntervalTimeout = MAXDWORD; // Ё­вҐаў « ­Ґ ЁбЇ®«м§гҐвбп
touts.ReadTotalTimeoutMultiplier = 0;
touts.ReadTotalTimeoutConstant = 0; // в ©¬ гв з⥭Ёп ­Ґ ЁбЇ®«м§гҐвбп
// (з⥭ЁҐ ЎҐ§ ®¦Ё¤ ­Ёп)
SetCommTimeouts(port, &touts);
}

EscapeCommFunction(port, SETDTR);
EscapeCommFunction(port, SETRTS);

for (;;) {
nread=0; ReadFile(port, Buff, 1, &nread, NULL);
if (nread==0) { // ­Ґв Ў ©в®ў
Sleep(20); // § ¤Ґ¦Є
} else { // Ґбвм

printf(" %02X", Buff[0]);

HANDLE file = CreateFile(FileName, GENERIC_WRITE,
FILE_SHARE_READ, NULL, OPEN_ALWAYS, 0, NULL);
SetFilePointer(file, 0, NULL, FILE_END);
WriteFile(file, Buff, 1, &nwrite, NULL);
CloseHandle(file);
}

if (kbhit() && getch()==27) break;
}
CloseHandle(port);
}
...
Рейтинг: 0 / 0
не компилится
    #33899220
Фотография red_mould
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если ты пытаешься компилить под вынь, то ты маленько не так делаешь, Если же ты компилить под Дос хотишь, то у тя комы работать не будут, т.к. только винда работает с комами как с потоком. Ну и ешо. Ты же указал(а) неверный тип потока тобишь филе. А именно вот параметры этой функции, ну и обрати внимание на самый первый параметр, и на его тип. А темерь на ошибку, а она говорит что не может первый параметр конвертировать с char в LPCTSTR
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
HANDLE CreateFile(

    LPCTSTR lpFileName,	// pointer to name of the file 
    DWORD dwDesiredAccess,	// access (read-write) mode 
    DWORD dwShareMode,	// share mode 
    LPSECURITY_ATTRIBUTES lpSecurityAttributes,	// pointer to security attributes 
    DWORD dwCreationDistribution,	// how to create 
    DWORD dwFlagsAndAttributes,	// file attributes 
    HANDLE hTemplateFile 	// handle to file with attributes to copy  
   );

Ну а что касается ДОСа, то он работает с этими вещами исключительно по прерываниям.
Мое почтение!

Лишь ум потеряный безповоротно мною,
Наполнит моё сердце мне тоскою.
Ози Озборн
...
Рейтинг: 0 / 0
не компилится
    #33899948
Фотография red_mould
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поробуй приведением типа, а именно
Код: plaintext
1.
HANDLE port = CreateFile(LPCTSTR(COM), GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING,  0 , NULL);

Лишь ум потеряный безповоротно мною,
Наполнит моё сердце мне тоскою.
Ози Озборн
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / не компилится
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]