WinAPI - pierwsze starcie (jak wyświetlić liczbę)

0

Witam wytłumaczy mi ktoś dlaczego nie jest wyświetlana liczba?? I proszę o jakąś wskazówkę jak to rozwiązać.:)

#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <cmath>
#include <cstdlib>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                   LPSTR lpszCmdLine,   int nCmdShow)
{
    srand(static_cast<int>(time_t(NULL)));
    UINT nWylosowana = (rand()%6)+1;
    MessageBox(NULL,LP(nWylosowana),L"Losowanie",NULL);
    return 0;
} 
0
patryj1083 napisał(a):

Witam wytłumaczy mi ktoś dlaczego nie jest wyświetlana liczba?? I proszę o jakąś wskazówkę jak to rozwiązać.:)

Spróbuj tak (bez unicode).

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                   LPSTR lpszCmdLine,   int nCmdShow)
{
    srand( (unsigned)time(NULL) );
    int nWylosowana = (rand()%6)+1;
        char bufor[1024];
        sprintf(bufor,"moja liczba %d",nWylosowana);
    MessageBox( NULL , "Losowanie" , bufor , NULL );
    return 0;
} 

Dodam jeszcze: to wygląda jak Twoje pierwsze starcie z C/C++ a nie z winapi.
Jak się język chociaż średnio zna, to od razu wiadomo jak poprawnie/bezpiecznie
używać funkcji WinApi. Moja rada: potrenuj jeszcze język zanim przejdziesz
do jakiejś biblioteki GUI.

0

Polecam książkę: Charles Petzold - Programming Windows

0

Zamiast cwaniakować moglibyście pomóc chłopakowi :facepalm:
W argumencie do Messagebox musisz podać typ const char. Więc musisz zamienić np. int na const char w jakiś sposób. Sposobem może być:

#include <sstream>
...
int zmienna = 5;
ostringstream strin;
strin << zmienna; // tutaj może być także: strin << zmienna << "aa" << kolejny int itd.
string ost_str = strin.str();
MessageBox(HWND_DESKTOP, ost_str.c_str(), "", MB_OK);

Możesz innymi sposobami zamienić: Konwersje int na string i string na int
Użyliśmy funkcji c_str() z klasy string aby zamienić string na tablicę const char :)

0
datamining napisał(a):

Polecam książkę: Charles Petzold - Programming Windows

Programowanie w WinApi, pomimo tego że WinApi to bardzo dobry interfejs i nie programuje
się jakoś źle przy jego użyciu, ma kilka wad:
1) jest tylko dla windows
2) komponenty nie są zbyt rozbudowane
3) niezbyt jasna sprawa co do środowiska RAD dla WinApi, coś niby jest, ale nie wiadomo jakiej jakości

Więc może lepiej od razu lepiej QT?

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