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


Anmelden zum Antworten