|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Ноя 28, 2002 17:38:18 Мобыть знает кто, в чём фича: пишу в masm'е invoke CreateProcess и т.д. PROCESS_INFORMATION беру из текущего процесса. Прога выпадает с сообщением, что она якобы вызвала ошибку в модуле Kernel32.dll. Все параметры проверял - имя файла, командную строку - всё правильно, но не работает. Пробовал закрывать в конце дескрипторы процесса и нити - не помогает... :-((( Мобыть кто знает работоспособные исходники? |
|
|
Дата: Ноя 28, 2002 22:16:44 Исходник - в студию! |
|
|
Дата: Ноя 29, 2002 12:17:22 Перед вызовом CreateProcess обнули структуру STARTUPINFO. А в поле cb запиши ее размер. invoke RtlZeroMemory, addr startup, sizeof STARTUPINFO mov startup.cb, sizeof STARTUPINFO |
|
|
Дата: Ноя 30, 2002 11:05:37 Попробовал - не работает. Может быть модель неправильная (".MODEL flat"). Всё же, я думаю, _работающие_сырцы_ помогли бы. ;) |
|
|
Дата: Ноя 30, 2002 12:56:40 .386 .model flat, stdcall option casemap:none include \masm32\include\windows.inc include \masm32\include\kernel32.inc includelib \masm32\lib\kernel32.lib .data szNotepad db "\Notepad.exe", 0 StartupInfo STARTUPINFO <0> ProcessInfo PROCESS_INFORMATION <0> buffer db MAX_PATH dup(0) .code start: invoke GetSystemDirectory, addr buffer, sizeof buffer invoke lstrcat, addr buffer, addr szNotepad mov StartupInfo.cb, sizeof STARTUPINFO invoke CreateProcess, addr buffer, NULL, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL,NULL, addr StartupInfo, addr ProcessInfo ret end start |
|
|
Дата: Дек 6, 2002 17:40:27 Cool!!! Переписал строку по-новому, переделал все 0 => NULL - усё заработало. В чём дело было - так и не понял... :( В любом случае - большое спасибо. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.069 |