Jak połączyć WinAPI ze standardowym kodem C++?
Ostatnio zmodyfikowano 2018-03-29 16:37
askabius Temat założony przez niniejszego użytkownika |
» 2018-03-27 19:27:25 Dobrze, już tłumaczę na czym ma polegać program. Niedawno napisałem program konsolowy, który miał losować liczbę (trochę bardziej zaawansowany algorytm losowania ale to nieważne), więc losuje liczbę od 1 do 660 a następnie otwiera odpowiedni plik. Np. wylosował liczbę 240 i otwiera 240.txt. W tym pliku znajduje się tekst. Program wczytuje ten tekst i wyświetla na ekranie. Jest to swoisty test, a plik wygląda następująco
Pytanie a) odpowiedz a b) odpowiedz b c) odpowiedz c poprawna odpowiedz
Jeśli wpisana przeze mnie wartość będzie równa poprawnej odpowiedzi to program losuje dalej itd.
Mój problem pojawił się w momencie, w którym postanowiłem przenieść to (trochę napisać od nowa a trochę skopiować) do jakiegoś ładnego okienka aby nie było w konsoli. I mój problem polega na tym, że nie wiem jak sprawić, aby kod C++ z losowaniem i wczytywaniem tekstu współgrał z WinAPI. Oto cały problem.
|
|
pekfos |
» 2018-03-27 19:38:06 Logika programu się nie zmienia. Całość interakcji z userem wywalasz i robisz od nowa w WinAPI. Jeśli wiesz jak ją zrobić, to podpięcie logiki nie będzie żadnym problemem. |
|
skovv |
» 2018-03-27 23:16:08 Ahh rozumiem chyba o co Ci chodzi(wnioskuje po kodzie ktry podales: #include <iostream> #include <fstream> #include <ctime> #include <conio.h> #include <string>
#include <windows.h>
using namespace std;
....< kod >....
int main() { ...< kod >.... }
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { ....< kod >.... } To nie tak, inaczej: int main() {...} funkcja main jest funkcja glowna calego programu, sercem, "entry pointem". Winapi ma ja troszke zmodyfikowana, aby lapala parametry HINSTANCE i inne smiechowe rzeczy, ale to taki sam main. Jesli korzystasz w winapi po prostu zamiast "konsolowego" main'a int main() daj int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) rozumiesz? Jesli zrobisz jak wyzej(main() i WinMain(...)) to po prostu kompilator kmini "wtf, o co chodzi? To albo stad mam czytac albo stad!", rozumiesz? Staram sie to prosto wyplumaczyc, ale jestem w tym raczej kiepski :) Poprawniej: #include <iostream> #include <fstream> #include <ctime> #include <string>
#include <windows.h>
using namespace std;
....< kod >....
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { ....< kod >.... } Ehh i prosze nie mow o laczeniu C++ z WinApi bo krew zalewa! :D Winapi to po prostu biblioteka do obslugi okien i innych bzdetow w C++, jak string do obslugi stringow, iostream do obslugi konsoli i tak dalej.. :) |
|
askabius Temat założony przez niniejszego użytkownika |
» 2018-03-29 16:37:07 Dziękuję skovvowi za przybliżenie odpowiedzi. Mniej więcej o to mi chodziło. Temat można zakończyć :) |
|
1 « 2 » |