Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Lokale Funktionsdefinitionen sind unzulässig

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
23.11.2004, 12:38 Uhr
~CRaffeEsNicht
Gast


hallo alle miteinander, ich habe ein Codestück gefunden, welches ich in meinem Programm verwenden möchte:

Code:

bool StartProcessAndWait(CString process, CString params, CString title, int show)
{
...
...
...
}


wenn ich dieses compilieren lasse, kommt folgende Fehlermeldung:

´StartProcessAndWait´: Lokale Funktionsdefinitionen sind unzulässig

was kann man dagegen tun, und vor allem wie

danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.11.2004, 12:54 Uhr
Tommix



Hallo,
vermutlich fehlt davor eine schließende Klammer.

- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
23.11.2004, 13:40 Uhr
~CRaffeEsNicht
Gast


Also , dass ist der Codeschnipsel den ich gefunden habe. Der Fehler ist weg, es fehlte eine Klammer...

Aber ich habe nochmal eine andere Frage, was muss ich denn machen, dass das auch funktioniert?


C++:
bool StartProcessAndWait ( CString process, CString params, CString title, int show)
{
static STARTUPINFO        StartupInfo;
static LPSTARTUPINFO        lpStartupInfo = &StartupInfo;
static PROCESS_INFORMATION    ProcessInfo;
static LPPROCESS_INFORMATION    lpProcessInfo = &ProcessInfo;

lpStartupInfo->cb        = sizeof (  STARTUPINFO );
lpStartupInfo->lpDesktop      = NULL;
lpStartupInfo->lpTitle    = title.GetBuffer(0);
lpStartupInfo->dwX    =  0;
lpStartupInfo->dwY    =  0;
lpStartupInfo->dwXSize    =  0;
lpStartupInfo->dwXSize    =  0;
lpStartupInfo->dwFlags    = STARTF_USESHOWWINDOW;
lpStartupInfo->wShowWindow    = show;


CString start;
start+=process;
start+=" ";
start+=params;
if (!CreateProcess(NULL, start.GetBuffer(start.GetLength()), (LPSECURITY_ATTRIBUTES) NULL,
    (LPSECURITY_ATTRIBUTES) NULL, false, CREATE_NEW_CONSOLE, (LPVOID) NULL,
    (LPTSTR) NULL, lpStartupInfo, lpProcessInfo))
{
    CString strError;
    DWORD errCode = GetLastError();
    strError.Format("Fehlercode: %i - ",errCode);
    return false;
}

WaitForSingleObject(lpProcessInfo->hProcess, INFINITE);
return true;
}




CString process->Pfad der auszuführenden Datei
CString params->Parameter für die zu startende Exe, kann auch leerstring sein
CString title-> Name der zu startenden Anwendung,kann auch leerstring sein
int show-> Anzeigeart des neuen Programms

Aber wo muss ich denn diese Strings "füllen"???
Habe jetzt vor den static jetzt eingefügt:

C++:
bool StartProcessAndWait ( CString process, CString params, CString title, int show)
{

process = "C:\la\la\la.exe";
params = " ";
title = " ";
show = SW_SHOWNORMAL;

static STARTUPINFO        StartupInfo;
static LPSTARTUPINFO        lpStartupInfo = &StartupInfo


aber es passiert nichts... muss ich das noch irgendwie starten???
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
23.11.2004, 15:12 Uhr
~toxic
Gast


naja, du musst die "function" schon noch in deiner main aufrufen:

C++:
int main(...)
{
...
     StartProcessAndWait("C:\\dein_pfad\\deine.exe", "-irgendwas", "Meine EXE", SW_SHOWNORMAL);
...
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
23.11.2004, 15:37 Uhr
~CRaffeEsNicht
Gast


hallo toxic
ich habe in der klasse, wo ich es aufrufen möchte kein int main()
ein OnOk() und ein OnCancel() und ein OnBrowse()...

ich habe in OnBrowse() den Pfad der Exe in einen CString einlesen lasse, und möchte nun die Funktion (CreateProcess) wie oben starten...
kannst du mir nochmal auf die Sprünge helfen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
23.11.2004, 16:06 Uhr
~toxic
Gast


sorry, ist ja MFC. naja, schreib das doch ans ende deiner onbrowse()
--
grusz
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
23.11.2004, 16:14 Uhr
~CRaffeESNicht
Gast


das habe ich alles schon durch:
FehlerMeldung:

StartProcessAndWait : nichtdeklarierter Bezeichner
StartProcessAndWait : Neudefinition; unterschiedliche Modifizierer
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: