Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Guten Morgen!

Is vielleicht ne dumme Frage, aber was ist eigentlich HINSTANCE?

Und wie kann ich den Typ vergleichen?

Beispiel:


HINSTANCE test = ShellExecute( NULL, "open", "irgendwas.exe", NULL, NULL, SW_NORMAL );

if (test == ERROR_FILE_NOT_FOUND)

{

In der MSDN Library steht dass ShellExecute diese Werte zurückgibt

0 The operating system is out of memory or resources.

ERROR_FILE_NOT_FOUND The specified file was not found.

ERROR_PATH_NOT_FOUND The specified path was not found.

ERROR_BAD_FORMAT The .exe file is invalid (non-Microsoft Win32 .exe or error in .exe image).

Verstehen tu ichs aber nicht. Vielleicht kann es mir jemand erklären?

Geschrieben
In der MSDN Library steht dass ShellExecute diese Werte zurückgibt
Und genau da steht auch folgendes:

The return value is cast as an HINSTANCE for backward compatibility with 16-bit Windows applications. It is not a true HINSTANCE, however. The only thing that can be done with the returned HINSTANCE is to cast it to an int and compare it with the value 32 or one of the error codes below.
Geschrieben

aha :confused:

und wie geht das?

Ich habs so versucht:

int x = static_cast<int>(test);

Aber kein Erfolg:

'struct HINSTANCE__ *' kann nicht in 'int' konvertiert werden

Wie macht man das richtig?

Geschrieben

Sorry, klingt jetzt etwas hart, aber:

Sag mal liest du die Compilerausgaben auch?

'struct HINSTANCE__ *' kann nicht in 'int' konvertiert werden

Einen Zeiger in einen int zu casten wird nie funktionieren! Nimm mal einen "int *"...

Geschrieben
Doch. Und genau das ist hier notwendig (leider). Stichwort reinterpret_cast.

Danke Dir, so gehts :-)

aber diese HINSTANCE ist ein seltsames ding :cool:

Geschrieben
Doch. Und genau das ist hier notwendig (leider). Stichwort reinterpret_cast.

Und wieder was gelernt. Aber eine saubere Art und Weise ist es nicht...

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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