Здравствуйте, у меня такая проблема. Поставил на виртуалке windows7, в виртуалке задал настройку com1 порт ассоциировать как файл 1.txt (там можно было это сделать) в моей убунте. В visual studio 2015 написал прогу:
#include <windows.h>
#include <iostream>
#include <io.h>
#include <stdio.h>
#include <fcntl.h>
using namespace std;
int main(void)
{
HANDLE h;
h = CreateFile(L"COM1", GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (h != INVALID_HANDLE_VALUE)
{
cout « "OkOpen" « endl;
}
else
{
cout « "Bad" « endl;
getchar();
return 0;
}
char buf[25];
memset(buf, 0, 25);
strcpy(buf, "hell is my name");
DWORD wtn;
OVERLAPPED ol;
WriteFile(h, buf, 25, &wtn, &ol);
cout « wtn « endl;
FlushFileBuffers(h);
CloseHandle(h);
getchar();
return 0;
}
Но он не пишет в файл 1.txt ничего. В чем может быть проблема, при этом прога выдала OkOpen Спасибо заранее.
Проблема номер раз - Вы не проверяете результат возвращаемый функцией WriteFile()
. В случае ошибки она вернет false
, а GetLastError()
вернет код самой ошибки.
Далее, Вы зачем-то передаете указатель на структуру OVERLAPPED
, хотя файл создаете без флага FILE_FLAG_OVERLAPPED
и никаких намеков на то, что Вы хотите работать с файлом асинхронно нет. При этом в самой структуре передаете мусор.
Итого, код должен быть таким
if (!WriteFile(h, buf, 25, &wtn, NULL))
cout << "Error writee file. Code: " << GetLastError() << endl;
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Как тут глобал оператор работает с данными класса? Какие свойство у него, и чем отличается от friend
Написал программу, которая должна выполнять функцию антикейлогера(отлавливать хуки в системе через функцию в DLL)Но почему-то при подключении...
Мне нужно произвести сортировку товаров по возрастанию ценыДелаю так: