Zum Inhalt springen

Einige Fragen zu Winapi


Jonsc1

Empfohlene Beiträge

Moin Moin...

Nach nem groben Einstieg in C++ hab ich mir jetzt mal diese Sache WinApi angeschaut...

Dazu einige Fragen.

1.

Inwiefern kann ich "Standart" C++ Code aus meiner main() Funktion in der neuen Winmain() Funktion verwenden? Gibt es Unterschiede?

Lassen sich main() und winmain() gleichzeitig verwenden?

Gibt es bei winmain() Funktionen? (Wie?)

Hab da noch nicht den richtigen Durchblick...

2.

Folgender Code öffnet (wenn der Compiler die ganze Sache entsprechend linkt) ein kleines Fenster mit dem Text "Hallo!" und nem Ok Button.

Wie ist es möglich diesen Text Variabel zu halten... so das beispielsweise eine Zahl aus einer Variable ausgegeben wird, oder eine Zeichenkette?


#include <windows.h> 

int WINAPI WinMain(HINSTANCE hI, HINSTANCE, TCHAR*, int) 

{ 

 MessageBox(NULL, "Hallo!", "", MB_OK); 

 return 0; 

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

1.

Inwiefern kann ich "Standart" C++ Code aus meiner main() Funktion in der neuen Winmain() Funktion verwenden? Gibt es Unterschiede?

Lassen sich main() und winmain() gleichzeitig verwenden?

Gibt es bei winmain() Funktionen? (Wie?)

Im Prinzip ist der einzige Unterschied zwischen main und WinMain das main eine Konsolenanwendung erstellt und WinMain eine 32Bit Anwendung ohne Konsole. Ansonsten gibt es da erstmal keinen Unterschied, außer das du natürlich in einem Programm ohne Konsole keine Funktionen verwenden kannst die auf die zugreifen (printf,scanf,cin,cout...).

Daraus ergibt sich das du nur eins von beiden aufrufen kannst, also entweder main oder WinMain.

Was meinst du mit "Gibt es bei winmain() Funktionen?"?

2.

Folgender Code öffnet (wenn der Compiler die ganze Sache entsprechend linkt) ein kleines Fenster mit dem Text "Hallo!" und nem Ok Button.

Wie ist es möglich diesen Text Variabel zu halten... so das beispielsweise eine Zahl aus einer Variable ausgegeben wird, oder eine Zeichenkette?

Wenn dir das nicht selber klar ist dann solltest du die Windows API erst nochmal beiseite schieben und dich nochmal mit den Grundlagen von C oder C++ genauer beschäftigen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Im Prinzip ist der einzige Unterschied zwischen main und WinMain das main eine Konsolenanwendung erstellt und WinMain eine 32Bit Anwendung ohne Konsole.

Nein, das hängt vom verwendetet Subsystem (Console oder Windows) ab. Du kannst auch jederzeit eine andere Eintrittsfunktion festlegen, die einen beliebigen Namen haben darf, aber den von Windows festgelegten Aufrufkonventionen folgen muss.

Daraus ergibt sich das du nur eins von beiden aufrufen kannst, also entweder main oder WinMain.

Der Aufruf dieser Funktionen erfolgt aus dem CRT Startup-Code heraus, je nach verwendetem Subsystem. Welche Funktion Windows zuerst aufruft, wird vom Linker festgelegt. Normalerweise ist das eine zur C-Run Time Library gehörende Funktion.

Wie ist es möglich diesen Text Variabel zu halten... so das beispielsweise eine Zahl aus einer Variable ausgegeben wird, oder eine Zeichenkette?

Du musst den String in einem Buffer vorbereiten, z.B. mit sprintf().

Link zu diesem Kommentar
Auf anderen Seiten teilen

das hilft Jonsc1 bestimmt sehr viel besser weiter anstatt zu verwirren :rolleyes:

Es geht mir nur darum den Sachverhalt möglichst richtig und so umfassend wie nötig darstellen, auch im Interesse anderer Leser dieses Threads.

Vielleicht sollte man noch anmerken, das Standard- C/C++ Programme eine main-Funktion verwenden müssen und WinMain natürlich plattformspezifisch ist.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...