visual studio в virtual box

297
09 января 2017, 21:47

Здравствуйте, у меня такая проблема. Поставил на виртуалке 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 Спасибо заранее.

Answer 1

Проблема номер раз - Вы не проверяете результат возвращаемый функцией WriteFile(). В случае ошибки она вернет false, а GetLastError() вернет код самой ошибки.

Далее, Вы зачем-то передаете указатель на структуру OVERLAPPED, хотя файл создаете без флага FILE_FLAG_OVERLAPPED и никаких намеков на то, что Вы хотите работать с файлом асинхронно нет. При этом в самой структуре передаете мусор.

Итого, код должен быть таким

if (!WriteFile(h, buf, 25, &wtn, NULL))
  cout << "Error writee file. Code: " << GetLastError() << endl;
READ ALSO
global operator функция

global operator функция

Как тут глобал оператор работает с данными класса? Какие свойство у него, и чем отличается от friend

294
Антикейлогер и DLL

Антикейлогер и DLL

Написал программу, которая должна выполнять функцию антикейлогера(отлавливать хуки в системе через функцию в DLL)Но почему-то при подключении...

316
Сортировка по полю с нулями, идущими последними

Сортировка по полю с нулями, идущими последними

Мне нужно произвести сортировку товаров по возрастанию ценыДелаю так:

271
Как можно узнать версию MySQL

Как можно узнать версию MySQL

Как можно узнать версию MySQL под Windows?

282