Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Errschaffer

Alter Hase

  • »Errschaffer« ist der Autor dieses Themas

Beiträge: 865

Wohnort: Frankfurt

  • Private Nachricht senden

1

23.07.2009, 11:36

WinAPI Problem

Hallo,

diesmal frage ich für meinen Bruder. Es geht um WinAPI. Ich selber habe mich nie damit beschäftigt.

Also Code:


C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// PROG3_2.CPP - A simple message box

#define WIN32_LEAN_AND_MEAN 
#include <windows.h>         
#include <windowsx.h>    

// main entry point for all windows programs

int WINAPI WinMain(HINSTANCE hinstance,
            HINSTANCE hprevinstance,
            LPSTR lpcmdline,
            int ncmdshow) 
{
// call message box api

MessageBox(NULL, "What's up world!",
                 "My First Windows Program",MB_OK);

// exit program

return(0);
} // end WinMain


Zitat

Konvertierung des Parameters 2 von 'const char [17]' in 'LPCWSTR' nicht möglich


edit:Kann es sein das der Code unvollständig ist? Ich hab mal grob im Buch geguckt und da fehlt einiges.

Nebulak

Frischling

Beiträge: 9

Wohnort: Karlsruhe

Beruf: Brennschneider

  • Private Nachricht senden

2

23.07.2009, 11:47

Er solls es mal mit:

C-/C++-Quelltext

1
MessageBox(NULL, TEXT("What's up world!"), TEXT("My First Windows Program"), MB_OK);

versuchen.

Sein Projekt ist auf Unicode eingestellt deswegen will MessageBox ein LPWSTR glaub ich.

mfg
mfg Nebulak

Faule Socke

Community-Fossil

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

3

23.07.2009, 11:47

Nope der Code ist soweit i.O. Sag ihm, er soll die Funktion MessageBoxA aufrufen. Das liegt daran, dass Visual Studio standardmäßig auf Unicode gestellt ist und deshalb immer die Unicode Funktionen verwendet und die erwarten wchar_t. Alternativ kann er auch einfach ein L vor seine Strings bei dem Aufruf schreiben.

Die Erklärung ist etwas billig, aber das hatten wir hier schon sooo oft da mach ich mir nicht die Mühe.

Socke

// Edit: Nebulaks Methode ist sogar noch besser, damit funktioniert es immer, ob Unicode nun an oder aus ist.

4

23.07.2009, 11:48

Das Projekt ist auf UNICODE gestellt, also entweder Unicode Strings ( L"text" ) benutzen, oder Unicode ausschalten.
Lieber dumm fragen, als dumm bleiben!

5

23.07.2009, 12:15

besser generische strings, also TEXT("bla blub"), wie unicode - generische klappen nämlich auch, wenn man wieder auf ascii umstellt ;)

GR-PA

Treue Seele

Beiträge: 326

Wohnort: Daheim

Beruf: Faulenzer

  • Private Nachricht senden

6

23.07.2009, 16:34

siehe FAQ
Signaturen werden überbewertet

Werbeanzeige