Zmiana aplikacji z konsolowej na WINAPI w C++

0

Witam!
To mój pierwszy post na tym forum. Już od dawna bardzo pomagacie mi, ale tym razem nie mogę znaleźć odpowiedzi na moje pytanie. Napisałem krótki program konsolowy w C++, który zapisuje do pliku wciśnięte klawisze. Oto jego kod:

#include <cstdlib>
#include <iostream>
#include <fstream>
#include <conio.h>

using namespace std;

int main()
{
    char x;
    fstream plik;
    while ('1' != '2') {
        plik.open("nazwa.txt", ios::in | ios::out | ios::ate);
        if (plik.good() == true) {
            x = getch();
            plik << x;
        }
        plik.close();
    }
    return 0;
}

Działa tak jak chciałem. Można zauważyć że jest to najprostszy i tak naprawdę bezużyteczny keylogger. Próbuję sprawić aby działał jak należy. Znaczy się odpalam program na komputerze, pojawia się on w procesach i zapisuje dane do pliku. Na podstawie tego co znalazłem na tym forum ogólnie w internecie otrzymałem tak oto kodzik:

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

using namespace std;

int WINAPI WinMain (HINSTANCE hThisInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR lpszArgument,
                    int nFunsterStil)

{       
    char x;
    fstream plik;
    while ('1' != '2') {
        plik.open("nazwa.txt", ios::in | ios::out | ios::ate);
        if (plik.good() == true) {
            x = getch();
            plik << x;
        }
        plik.close();
    }
    return 0;
}

Z tym, że gdy odpalam ten program, plik "nazwa.txt" zapełnia się jakimś znakiem, który wygląda jak kropka (?), dokładnie nie wiem co to za znak... Dalej utknąłem nie wiem co zrobić w internecie nie znajduję odpowiedzi, więc proszę o pomoc tutaj :)

Z góry dziękuję,
Marcosinus :)

1

Jak chcesz pisać w tym WinAPI to musisz zacząć go poznawać od podstaw - tutorial i do dzieła. Tak sklecając coś z czegoś znalezionego w necie nigdzie Cię nie doprowadzi. Ogólnie cały ten kod w funkcji WinMain jest do wywalenia. Jedyne co tam może zostać to praktycznie tylko return 0;
Pisanie aplikacji konsolowych, a okienkowych to zupełnie różne sposoby pisania.

1 użytkowników online, w tym zalogowanych: 0, gości: 1