problem mit shlwapi.h in C-File ...
-
hallo,
ich habe da eine c++ dialogbasierte anwendung und hierzu einige c-dateien aus denen bestimmte funktionalitaeten fuer den dialog gebraucht werden.
in den c-files kommen system(...) aufrufe vor, die zur folge haben dass eine dos-box aufpoppt.
ich wollte nun diese durch aufruf von ShellExecuteEx(..) ersetzen.
Hierzu habe ich in dem betreffen c-file die header windows.h und shlwapi.h
includiert.allerdings meckert mein compiler dann bei folgendem code:
// ... SHELLEXECUTEINFO sei; ZeroMemory( &sei, sizeof( sei ) ); sei.cbSize = sizeof( sei ); sei.fMask = SEE_MASK_NOCLOSEPROCESS; sei.lpFile = LPCTSTR(msg); sei.lpParameters = NULL; sei.lpDirectory = NULL; sei.nShow = SW_HIDE; // ...sowas wie:
t:\testmate1.5.2a\sourcen\merge_scp\vc\scp_merge.c(65) : error C2275: "SHELLEXECUTEINFO" : Ungültige Verwendung dieses Typs als Ausdruck
c:\programme\microsoft visual studio\vc98\include\shellapi.h(429) : Siehe Deklaration von 'SHELLEXECUTEINFO'
t:\testmate1.5.2a\sourcen\merge_scp\vc\scp_merge.c(65) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'sei'
t:\testmate1.5.2a\sourcen\merge_scp\vc\scp_merge.c(65) : error C2065: 'sei' : nichtdeklarierter Bezeichner
t:\testmate1.5.2a\sourcen\merge_scp\vc\scp_merge.c(67) : error C2224: Der linke Teil von '.cbSize' muss eine Struktur/Union sein
t:\testmate1.5.2a\sourcen\merge_scp\vc\scp_merge.c(68) : error C2224: Der linke Teil von '.fMask' muss eine Struktur/Union sein
t:\testmate1.5.2a\sourcen\merge_scp\vc\scp_merge.c(69) : error C2224: Der linke Teil von '.lpFile' muss eine Struktur/Union sein
t:\testmate1.5.2a\sourcen\merge_scp\vc\scp_merge.c(69) : error C2063: 'LPCTSTR' : Keine Funktion
t:\testmate1.5.2a\sourcen\merge_scp\vc\scp_merge.c(70) : error C2224: Der linke Teil von '.lpParameters' muss eine Struktur/Union sein
t:\testmate1.5.2a\sourcen\merge_scp\vc\scp_merge.c(71) : error C2224: Der linke Teil von '.lpDirectory' muss eine Struktur/Union sein
t:\testmate1.5.2a\sourcen\merge_scp\vc\scp_merge.c(72) : error C2224: Der linke Teil von '.nShow' muss eine Struktur/Union sein
t:\testmate1.5.2a\sourcen\merge_scp\vc\scp_merge.c(74) : warning C4133: 'function' : Inkompatible Typen - von 'char *' zu 'struct HWND__ *'etc.
es liegt jedoch kein syntax-fehler vor denke ich, zumal ich obigen code-schnippsel aus einem cpp-file uebernommen habe wo er funktionierte.
ich denke es hat was mit headern zu tun!?ein tipp waere sehr hilfreich,
vielen dank.
gruss
-
hat vielleicht irgendjemand netterweise einen tipp oder ne idee zu meinem beitrag?
vieeelen dank.
gruss
-
ok war mein fehler, sorry.
ich habe einen ganz dummen fehler gemacht. Eine Variablen-deklaration in C(!!)-Funktionen muss immer am anfang einer funktion stehen. Bei mir stand sie mittendrin C++ -like sozusagen.trotzdem danke.
gruss