Посл.ответ |
Сообщение |
Ранг: 303.7 (мудрец), 4thx Активность: 0.19↘0 Статус: Участник tPORt Manager
|
Создано: 12 декабря 2004 12:14 · Личное сообщение · #1
Пацаны, решили с командой прогу писать, а тут проблема. Качать : diprog.x2rus.ru/Project-Unicorn.rar
Вобщем, запускайте прогу, жмите на кнопку и прога вылетит, посмотрите сырцы, где глюк, сначала был в стеке, выровнял, а сейчас?
| Сообщение посчитали полезным: |
|
Ранг: 0.0 (гость) Активность: 0.02↘0 Статус: Участник
|
Создано: 12 декабря 2004 12:55 · Личное сообщение · #2
Сорри конечно, но это ж полный бред - запускать длл(чужую?), потом писать в файл возвращаемую таблицу процессов и уже после пытаться загрузить ее в мемо. Во-первых зачем так извращаться? Не проще самому, через Toolhelp/ZwQuerySystemInformation/PSAPI etc. ?
А во-вторых там ведь имя процесса чередуется с PID, и как ЭТО загрузится в мемо??
| Сообщение посчитали полезным: |
Ранг: 303.7 (мудрец), 4thx Активность: 0.19↘0 Статус: Участник tPORt Manager
|
Создано: 12 декабря 2004 13:01 · Личное сообщение · #3
XaErO пишет:
Toolhelp/ZwQuerySystemInformation/PSAPI etc
Эта прога в будущем универсальный загрузчик длл, мне надо загрузить длл, (потом длл будет возвращать нормальный текст).
| Сообщение посчитали полезным: |
Ранг: 0.0 (гость) Активность: 0.02↘0 Статус: Участник
|
Создано: 12 декабря 2004 13:16 · Личное сообщение · #4
Ну дак все нормально вроде с длл. Файл нормально создается. Вылетает Exeption при попытке загрузки текста в мемо. Вроде в этом проблема.
| Сообщение посчитали полезным: |
Ранг: 303.7 (мудрец), 4thx Активность: 0.19↘0 Статус: Участник tPORt Manager
|
Создано: 12 декабря 2004 13:18 · Личное сообщение · #5
Дак вот почему? Я понял, что в мемо(int 3). Почему глюк?
| Сообщение посчитали полезным: |
Ранг: 0.0 (гость) Активность: 0.02↘0 Статус: Участник
|
Создано: 12 декабря 2004 13:47 · Личное сообщение · #6
А вобще может ли загрузиться в него текст с непечатаемыми символами?
| Сообщение посчитали полезным: |
Ранг: 303.7 (мудрец), 4thx Активность: 0.19↘0 Статус: Участник tPORt Manager
|
Создано: 12 декабря 2004 13:49 · Личное сообщение · #7
Да, кажись. Ну а почему глюк, из-за непечатаемых?
| Сообщение посчитали полезным: |
Ранг: 3.6 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 12 декабря 2004 13:55 · Поправил: Gloomy · Личное сообщение · #8
Давненько не видал такого чудовищного кода 8-[==] Непонятно главное - ты на Дельфи пишешь или на Ассемблере, зачем такая громадная вставка? Не лучше ли будет написать простенький понятный читабельный код:
type
TGetTaskList = function: Pointer; stdcall;
procedure TfrmMain.bnMainClick(Sender: TObject);
var
hDll: THandle;
GetTaskList: TGetTaskList;
pResult: Pointer;
bFile: File of Byte;
label _freelib;
begin
//asm int 3 end;
hDll:= LoadLibrary('advtsk.dll');
if hDll = 0 then exit;
@GetTaskList:= GetProcAddress(hDll, 'clProcess');
if @GetTaskList = nil then goto _freelib;
pResult:= GetTaskList();
if pResult = nil then goto _freelib;
AssignFile(bFile, 'taskz.txt');
Rewrite(bFile);
BlockWrite(bFile, pResult^, $0A28);
CloseFile(bFile);
_freelib:
FreeLibrary(hDll);
end;
А TMemo правильно делает что ошибку выдает, я бы тоже матерился если б мне подсовывали в качестве текстового файл начинающийся нулевым байтом.
| Сообщение посчитали полезным: |
Ранг: 0.0 (гость) Активность: 0.02↘0 Статус: Участник
|
Создано: 12 декабря 2004 14:02 · Личное сообщение · #9
Gloomy пишет:
файл начинающийся нулевым байтом
Очень может быть =)
| Сообщение посчитали полезным: |