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

WinAPI - pierwsze starcie (jak wyświetlić liczbę)
patryj1083
  • Rejestracja:prawie 13 lat
  • Ostatnio:ponad 6 lat
  • Postów:102
0

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

Kopiuj
#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;
} 
KA
  • Rejestracja:prawie 20 lat
  • Ostatnio:2 minuty
  • Lokalizacja:Gorlice
0

Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
MA
  • Rejestracja:około 12 lat
  • Ostatnio:około 12 lat
  • Postów:49
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).

Kopiuj
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.


Pozdrawiam
edytowany 2x, ostatnio: mariotti
DA
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 12 lat
  • Postów:42
0

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

mwl4
  • Rejestracja:około 12 lat
  • Ostatnio:19 dni
  • Lokalizacja:Wrocław
  • Postów:399
0

Zamiast cwaniakować moglibyście pomóc chłopakowi 🤦
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ć:

Kopiuj
#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ć: http://4programmers.net/C/Konwersje_int_na_string_i_string_na_int
Użyliśmy funkcji c_str() z klasy string aby zamienić string na tablicę const char :)


Asm/C/C++
edytowany 2x, ostatnio: mwl4
Zobacz pozostałe 3 komentarze
MA
Ale dałem program i to gotowy, ewentualnie trzeba literówki poprawić - to jedno. A drugie jak ma się chłopak uczyć WinApi jeśli nie rozumie konwersji? Nigdy się bez tego nie nauczy. Trzeba wrócić do nauki C/C++.
mwl4
Przyjdzie jeszcze czas na zrozumienie wszystkiego od początku do końca. Nie wszystkiego da się od razu zrozumieć. Zresztą... Czy w konsoli trzeba było co kolwiek konwertować ? Konsola wyświetlała bez problemu typy liczb, ale niestety problem się pojawia w WINAPI..
MA
Spróbuj uczyć dziecko logarytmów nie nauczywszy wcześniej tabliczki mnożenia i dodawania :)
KA
@mwl4 Pytanie było o WinApi (i dostał odp. link do funkcji) a to chyba nie WinApi nie wprowadzaj chłopaka w błąd
mwl4
@kAzek może i nie, ale sposób dobry :)
MA
  • Rejestracja:około 12 lat
  • Ostatnio:około 12 lat
  • Postów:49
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?


Pozdrawiam

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.