problem mit CreateProcess() und "failed to initialize properly (0xc0000142)"

23/01/2009 - 17:15 von Thomas Steinbach | Report spam
Hallo NG,

ich habe eine kleine App gebastelt die mir mysql (5.0.x)
als app startet und stoppt. Bisher lief alles gut, aber unter
machen Umstaenden bekomme ich nun (unter Vista) den
"Application Error" wie auf:

http://www.failure.bravehost.com/prog/win32/mysql/

zu sehen. Im Event Log steht unter:

Application: (hier als Error)

Faulting application mysqladmin.exe, version 0.0.0.0, time stamp 0x4896fbc6,
faulting module kernel32.dll, version 6.0.6001.18000, time stamp 0x4791a7a6,
exception code 0xc0000142, fault offset 0x00009cac, process id 0x16f8,
application start time 0x01c97d7280356011.
Damit kann ich so gar nichts anfangen.

System: (hier als Information)
Application popup: mysqladmin.exe - Application Error : The application
failed to initialize properly (0xc0000142). Click OK to terminate the
application.


Weiss jemand was das fuer ein Fehler ist und wie ich
diesen behebe? Finde leider nichts im Netz was mir
weiterhilft :-(
Unter XP Pro SP2/3 habe ich diesen Fehler nicht und
bis gestern ging das so auch unter Vista

Das komische ist das es manchmal passiert
Wenn ich die Funktion zum stoppen direkt aus der
Nachrichtenverarbeitung aufrufe und dann mal nicht,
wenn ich die Funktion ueber den Umweg einer
anderen Funktion aufrufe. Der Aufruf an sich ist aber
genau gleich und es werden keine "notwendigen"
variablen geloescht oder gesetzt.

snip direkter aufruf geht schief
[...]
case IDC_BUTTON_MYSQLD_STOP:
StopDatabaseMySQL(hWnd);
return (INT_PTR)TRUE;
[...]
snap

snip dieser "Umweg" macht keinen Fehler
[...]
case IDC_BUTTON_STARTSTOP:
StopAllApplications(hWnd) ;
return (INT_PTR)TRUE;
[...]
BOOL StopAllApplications(HWND hWnd)
{
[...]
StopDatabaseMySQL(hWnd);
[...]
return TRUE;
}
snap

snip gekuerzt
int StopDatabaseMySQL(HWND hWnd)
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
TCHAR szCmd[MAX_PATH] = _TEXT("");
LPTSTR lpszCmd = NULL;

lpszCmd = (LPTSTR)szCmd;
strcpy_s(szCmd, sizeof(szCmd), "\"");
strcat_s(szCmd, sizeof(szCmd), "D:\\mysql");
strcat_s(szCmd, sizeof(szCmd),
"\\bin\\mysqladmin.exe\" --host=localhost --user=root --password=password --silent
shutdown");

if( pim.hProcess != NULL ) {
si.dwFlags = STARTF_USESTDHANDLES|STARTF_USESHOWWINDOW;
si.wShowWindow = SW_HIDE;
CreateProcess(NULL, lpszCmd, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi) ;
}
return 0;
}
snap


Thomas
 

Lesen sie die antworten

#1 Volker Birk
24/01/2009 - 13:46 | Warnen spam
Thomas Steinbach wrote:
ich habe eine kleine App gebastelt die mir mysql (5.0.x)
als app startet und stoppt.



Wozu das denn?

Wenn Du was suchst, was Du in Deine Applikation einbetten kannst, dann
eignet sich SQLite wahrscheinlich viel besser:

http://www.sqlite.org/

Falls ein lokal installiertes MySQ vorhanden ist, solltest Du besser das
Service API benutzen:

http://msdn.microsoft.com/en-us/library/ms681921(VS.85).aspx
http://msdn.microsoft.com/en-us/library/ms686315(VS.85).aspx

Viele Grüsse,
VB.
Bitte beachten Sie auch die Rückseite dieses Schreibens!

Ähnliche fragen