ShellExecute: Linker-Fehler
-
**Hallo,
habe folgendes Problem:
Ich bekomme beim Linken folgendes Quelltextes....**
#pragma comment(lib, "user32.lib")
#pragma comment(lib, "shell32.lib")#include "stdafx.h"
using namespace std;
void RunApplication(LPCTSTR FileName, LPCTSTR FileParam);
int _tmain(int argc, _TCHAR* argv[])
{
unsigned int menuewahl = 0;do
{
cout << " Waehlen Sie eine Option:\n\n" << " [1] Hybrid\n" << " [2] Doppel\n\n";cout << " Wahl ([1,2]) = ";
cin >> menuewahl;
switch(menuewahl)
{
case 1:
ShellExecute(0, _T("open"), _T("U:\\Visual Studio Data\\11082010_CANape_Startskript\\11082010_CANape_Startskript\\start.bat"), 0, 0, SW_SHOWNORMAL); break;
case 2:
cout << menuewahl; break;
default:
cout << "\n\n Der eingegebene Wert ist ungueltig! Die gueltigen Eingabewerte sind 1 und 2\n\n\n";
}
}
while(menuewahl < 1 || menuewahl > 2);return 0;
}diese Linker-Fehler:
1>Linking...
1>11082010_CANape_Startskript.obj : error LNK2019: unresolved external symbol __imp__ShellExecuteW@24 referenced in function _wmain
1>U:\Visual Studio Data\11082010_CANape_Startskript\Debug\11082010_CANape_Startskript.exe : fatal error LNK1120: 1 unresolved externals**Woran könnte das liegen?
Meine Entwicklungsumgebung:
Visual Studio 2005 Express
Projekt: KonsolenanwendungVielen Dank schonmal!
Grüße
gommelz**
-
Hm, die Funktion liegt in der shell32.lib, aber die brauchst du eigentlich nicht explizit zu linken. Kann es sein, dass du in den Projekt-Settings unter Linker=>Eingabe "Standardbibliotheken ignorieren" auf "Ja" gestellt hast?
EDIT: Ach sorry, du linkst die ja sogar explizit (wie gesagt, nicht nötig). Habe ich zunächst übersehen... Also bei mir funktioniert's, ob mit oder ohne pragma-Statement (ich weiß, hilft dir nicht wirklich
).
-
Danke fürs Durchschauen, aber war nur ein kleines Problem.
Scheinbar muss man erst alle includes bearbeiten und dann erst die lib einbinden.
Komisch... So geht's dann!Gruß
-
Vermutlich reicht es, die pragma-Anweisungen unter #include "stdafx.h" zu platzieren. Diese Zeile sollte immer die oberste sein.
-
Die
includes
müssen immer ganz oben stehen.
-
Omicron schrieb:
Die
includes
müssen immer ganz oben stehen.Glaube ich kaum, dass dies eine generelle Regel ist. Ich finde auch ganz schnell Gegenbeispiele in unserem Source. Wie kommst du darauf?