Archiv verlassen und diese Seite im Standarddesign anzeigen : ShellExecute Problem
big earl
22.12.2008, 10:36
Also ich bekomm hierbei immer einen Fehler
#include <shellapi.h>
int main ()
{
int z = ShellExecute(0 , "open", "C:\\Program Files\\File.exe",0, 0, SW_NORMAL);
}
Wie kann ich das beheben (oO) ?
Welchen Fehler bekommst du denn genau? Zur Kompilierzeit oder zur Laufzeit?
Cr4ckEye
22.12.2008, 10:51
http://msdn.microsoft.com/en-us/library/bb762153.aspx
Versuch es mal mit der windows.h statt der shellapi.h.
big earl
22.12.2008, 11:02
Es kommt sowas
1 C:\Users\big earl\Desktop\Unbenannt1.cpp In file included from C:\Users\big earl\Desktop\Unbenannt1.cpp
und wenn ich das als windows.h deklariere, kommt
5 C:\Users\big earl\Desktop\Unbenannt1.cpp `Shellexecute' undeclared (first use this function)
btw. hab das hiernach gemacht
http://www.cbuilder.de/artikel/progstarten/ShellExecute.html
Du solltest sowieso nicht ShellExecute nehmen um ein Programm zu öffnen, sondern CreateProcess
Das sowieso. :)
Du hast leider vergessen, zu erwähnen, welchen Compiler du verwendest. Ein Versuch wäre es Wert, ShellExecute[x] ([x] = A für ANSI, W für Unicode) zu verwenden (z. B. im Falle von MSVC, da dort standardmäßig die Widechar-Varianten verwendet werden).
big earl
22.12.2008, 12:25
ok, ;X's post habe ich grundsätzlich ignoriert, da ich schon nach dem Smile nichts mehr verstanden haben :P
Nun habe ich das dank Perfo mal so probiert
#include <windows.h>
#include <shellapi.h>
int main ()
{
int z = ShellExecute(0 , "open", "C:\\Program Files\\File.exe",0, 0, SW_NORMAL);
}
jedoch kommt dabei dieser Fehler
6 C:\Users\big earl\Desktop\ShellExecute\Täst.cpp invalid conversion from `HINSTANCE__*' to `int'
weis nicht, obs am 'int z =' liegt
und zu CreateProcess hab ich das hier gefunden
http://msdn.microsoft.com/en-us/library/ms682512.aspx
Doch da ich grad noch so If abfrage hinbekomme, versteh ich hierbei nichts -.-
blackberry
22.12.2008, 12:32
HINSTANCE ShellExecute(
HWND hwnd,
LPCTSTR lpOperation,
LPCTSTR lpFile,
LPCTSTR lpParameters,
LPCTSTR lpDirectory,
INT nShowCmd
);
(Quelle: http://msdn.microsoft.com/en-us/library/bb762153(VS.85).aspx)
ShellExecute gibt HINSTANCE zurück und du hast versucht es einem Integer (ohne Cast) zuzuweisen.
ShellExecute gibt den Datentyp HINSTANCE__ * zurück, keinen Integer. Setz' einfach ein (int) vor dein ShellExecute und es sollte gehen. ;)
Cr4ckEye
22.12.2008, 12:36
ja es liegt ab int, da der return wert nicht als int sondern als HINSTANCE (struct) zurückgegeben wird. Zumal ich nicht verstehe wofüt du den rückgabe wert brauchst.
Warum machst du denn sowas wenn dur grad bei If abfragen bist? Lern doch erstmal fertig und üb fleißig ;-)
Er wird eine Fehlerabfrage auf Konstanten wie ERROR_FILE_NOT_FOUND einbauen wollen, was auch vollkommen gerechtfertigt ist (ja, ich weiß, man lässt Fehlerabfragen gerne weg... o0).
big earl
22.12.2008, 12:50
Vielen Dank leute, hat mit dem (int) geklappt
( wobei ich immernoch nicht weis, wieso in Klammern -.- )
und warum ich das hier schon mache ?
hmm.....ka ^^
Lies dir z. B. das hier (http://home.fhtw-berlin.de/~junghans/cref/CONCEPT/cast.html) mal durch. ;)
Powered by vBulletin® Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.