ShellExecute
-
Hi !
Ich hab mal folgendes Versucht:
#include <shellapi.h> void shellExcel() { ShellExecute(NULL,"open","excel.exe",NULL,NULL,SW_SHOWNORMAL); }
Und bekomm dann die Fehlermeldung:
1 Project link error
Undefined symbol '_ShellExecuteA@24' referenced in "excel.c"Was soll das heissen?Damit kann ich ueberhaupt nix anfangen.
Danke,
Gruss Jochen
-
Inkludiere <windows.h> anstelle von <shellapi.h>. Und wenn das nicht geht, mußt Du noch die Definition von WIN32_LEAN_AND_MEAN rauswerfen.
-
http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/reference/functions/shellexecute.asp
Hast du mit shell32.lib gelinkt?
-
[edit] Dummes Zeug [/edit]
-
Mit Windows.h gehts auch nicht.Auch das WIN32_LEAN_AND_MEAN define rauswerfen bringt nix.
Komischerweise gibts in meiner Entwicklungsumgebung gar kein shell32.lib.
Wenn ich die aber von woanders hernehme und ins Projekt einfuege, gehts auch nicht.
Immer die selbe Fehlermeldung.
-
kann ich alternativ auch so was wie:
system("run excel");
nehmen?Gibts so was in der Art?
-
#include <shellapi.h> muß drin sein (erledigt NICHT die windows.h)
Dann shell32.lib verlinken.
WIN32_LEAN_AND_MEAN kann drinbleiben in dem Fall, gibt mir aber irgendwie immer 'ne Gänsehaut...
...und wenn die fehlt:
Ab, Platform SDK saugen...
-
Danke fuer die Tipps.
system("start excel");
tuts jetzt mal fuers erste.
Werd die Version mit ShellExecute und shell32.lib auch nochmal versuchen.Gruss
Jochen
-
Hepi schrieb:
#include <shellapi.h> muß drin sein (erledigt NICHT die windows.h)
Dann frag ich mich, warum ich <shellapi.h> noch nie direkt inkludieren mußte. Außerdem frage ich mich, was diese Zeile in <windows.h> bewirken soll:
#include <shellapi.h>
Funktioniert aber, wie gesagt, nur ohne diesem unnützen WIN32_LEAN_AND_MEAN.
@GuybrushThreepwood
Dann bist Du wohl in Andere Compiler besser aufgehoben. System kannst Du auch nehmen, ja. Den Pfad mußt Du aber schon noch angeben, eben wie bei ShellExecute.
-
-King- schrieb:
Hepi schrieb:
#include <shellapi.h> muß drin sein (erledigt NICHT die windows.h)
Dann frag ich mich, warum ich <shellapi.h> noch nie direkt inkludieren mußte. Außerdem frage ich mich, was diese Zeile in <windows.h> bewirken soll:
#include <shellapi.h>
Funktioniert aber, wie gesagt, nur ohne diesem unnützen WIN32_LEAN_AND_MEAN.
Ah, und genau da schließt sich der Kreis:
Ich hatte bis vor kurzem auch immer WIN32_LEAN_AND_MEAN definiert und da brauchte ich die shellapi.h separat includiert, daher ging ich fälschlicherweise davon aus, das die nicht in Windows.h inkludiert wird!
Zumal sonst in der MSDN überall steht "defined in WinBase.h, include Windows.h" oder so... nur eben bei ShellExecute nicht...