Ich versuche gerade mich in die Welt der Programmierung von
Windowsfenstern ein zu arbeiten. Da habe ich mir ein Tutorial aus dem
Netz gesucht: http://www.win-api.de/tutorials.php?tutid=2
Ich habe jetzt einfach mal stumpf stupide den C Coode in mein VisualC++
Programm kopiert und wollte es einfach mal aus testen.
1
#define STRICT
2
#include<windows.h>
3
4
constcharszWitz[]="\"Ich steh' schwer auf Umweltschutz\", sagt Peter.\n"
5
"\"Ich werfe zum Beispiel alte U-Bahn-Fahrscheine nie weg,\n"
intiAntwort=MessageBox(NULL,szWitz,"Ha, ha, ha, ha...",MB_ICONINFORMATION|MB_OKCANCEL|MB_DEFBUTTON1);
12
13
if(IDOK==iAntwort)
14
{
15
MessageBox(NULL,"Ja, ich finde den Witz auch Ok...",
16
"Sie haben auf Ok gedrückt",
17
MB_ICONINFORMATION|MB_OK|MB_DEFBUTTON1);
18
}
19
elseif(IDCANCEL==iAntwort)
20
{
21
MessageBox(NULL,"Ja, warum haben sie denn auf Abbrechen gedrückt?\n"
22
"Hat ihnen der Witz etwa nicht gefallen?",
23
"Sie haben auf Abbrechen gedrückt",
24
MB_ICONINFORMATION|MB_OK|MB_DEFBUTTON1);
25
}
26
27
return0;
28
}
Doch es kommen nur mehere Fehlermeldungen die beziehen sich immer auf
die geschriebenen Textzeilen die innerhalb der " " stehen.
1 IntelliSense: Das Argument vom Typ ""const char *"" ist mit dem
Parameter vom Typ ""LPCWSTR"" inkompatibel. 11
kennt sich jemand damit aus?
MessageBox(NULL,T("Ja, ich finde den Witz auch Ok...",
2
"Sie haben auf Ok gedrückt"),
3
MB_ICONINFORMATION|MB_OK|MB_DEFBUTTON1);
schreiben, um 16Bit -Texte zu definieren. Also T(...) um die Strings.
Allerdings, möchtest du dir das wirklich antun, mit den WinAPI direkt
programmieren? Es empfiehlt sich die Verwendung eines Toolkits wie Gtk
oder Qt, das ist einfacher, und, wenn richtig gemacht, auch auf andere
Betriebssysteme portabel.
Mach aus dem "T" ein "Text", dann stimmts. Also so
MessageBox (NULL, TEXT ("Hello, Windows 98!"), TEXT ("HelloMsg"), 0);
> Allerdings, möchtest du dir das wirklich antun, mit den WinAPI direkt> programmieren?
Na nu lass ihn doch mal. Man lernt was dabei. ;)
> Es empfiehlt sich die Verwendung eines Toolkits wie Gtk> oder Qt, das ist einfacher,
oder gleich C#, das ist dann noch bequemer ;)
> und, wenn richtig gemacht, auch auf andere> Betriebssysteme portabel.
für den der das braucht. ;)
na oh (Gast) schrieb:
> teste doch mal MessageBox(NULL, "hey", "hey",0);
das führt unter VC 2008 zu einem
error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const
char [19]' in 'LPCWSTR' nicht möglich
also immer schön die Anweisung
Text(" ")
darum ;)
> Habt ihr was besseres?
Nix da, bleib dabei, so lernst du wenigstens richtiges Programmieren und
kein Zusammenfriekeln irgendwelcher Funktionen aus den Libs. Es ist zwar
brutal und umständlich, aber man lernt dabei fürs Leben;)
> Nix da, bleib dabei, so lernst du wenigstens richtiges Programmieren und> kein Zusammenfriekeln irgendwelcher Funktionen aus den Libs. Es ist zwar> brutal und umständlich, aber man lernt dabei fürs Leben;)
Bitte was?! Durch schmerzhaftes verwenden eines verkorksten API's lernt
man was? Lieber mit einem schöneren API anfangen, damit man sieht wie es
richtig geht, und später vielleicht ein verkorsktes, um zu sehen, wie es
nicht geht...
Und wer Angst vor Englisch hat, wird viel Spass beim programmieren
haben... Fast alles ist in Englisch geschrieben, und wenn du etwas mehr
machen willst als das Tutorial hergibt, wirst du es auch brauchen...
Ben S. (theben) schrieb:
> Danke Leute Text("") funktioniert.> Ich tu mir WinAPI an weil ich kein anderes deutschprachiges tutorial> gefunden habe.> Habt ihr was besseres?
Also nur allein mit deutsch geht das nicht, da wirst du gelinde gesagt
nicht glücklich werden. Das gilt aber nicht nur für die WinAPI. ;)
Lade dir die Programmbeispiele vom Petzold herunter (sind frei dl'bar)
http://www.charlespetzold.com/src/ProgWin5.zip
und schau dir den Beispielcode genau an. Besser noch wäre dazu auch das
Buch (oder ebook) zur Hand zu haben.
Das msdn ist aber noch immer DIE Informationsquelle schlecht hin.
Ansonsten wirf einen Blick hier rein
http://books.google.com/books?id=ex0vcHp4nTUC&lpg=PP1&hl=de&pg=PP1#v=onepage&q&f=false
> Lieber mit einem schöneren API anfangen, damit man sieht wie es> richtig geht, und später vielleicht ein verkorsktes, um zu sehen, wie es> nicht geht...
unter windows ist das die native API. Alle anderen benutzen diese. Und
wenn man die kann dann versteht man auch warum in den anderen das ein
oder andere Problem so gelöst ist wie es gelöst ist.
> unter windows ist das die native API. Alle anderen benutzen diese. Und> wenn man die kann dann versteht man auch warum in den anderen das ein> oder andere Problem so gelöst ist wie es gelöst ist.
Stimmt, wenn man das WinAPI so interessant findet...
Was ist schöner: