|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Авг 14, 2004 23:27:53 Пожалуйста, помогите мне сделать программу, резидентной, как и int 27 в ДОСе и чтоб в определенным временем менялись ссылки автоматически. Хотяб намекните, пожалуйста, заранее спасибо. А то я только в ДОСе начел фурычеть. Для начинающих советую зайти на http://www.Kalashnikoff.ru |
|
|
Дата: Авг 15, 2004 11:19:48 Посмотри туториалы Iczelion'а. Скачай winapi. Используй masm. Нужная тебе процедура: invoke SetTimer,hWnd,IDC_TIMER_1,s_timer,NULL mov TimerID,eax |
|
|
Дата: Авг 23, 2004 04:28:16 ivoke без спец inc файлов работать не будет. Так-что лучше razm=размер лок. переме. param1=-4 param2=-8 ... hwnd=4 ... push ebp mov ebp,esp sub esp,razm ...... ..... push 0 push число таймера push IDC_..... push [ebp-hwnd] call SetTimer ... ... ... add esp,razm pop ebp |
|
|
Дата: Авг 23, 2004 05:53:49 zzzyab ivoke без спец inc файлов работать не будет Для какого компилятора? add esp,razm pop ebp А не лучше ли mov esp,ebp pop ebp |
|
|
Дата: Авг 23, 2004 18:39:41 В МАСМ если функция не прописана с таким е.р. способом Invoke не работает: @proto_101 TYPEDEF PROTO FAR PASCAL :UINT LocalHandle PROTO @proto_101 Имхо лучше прописывать так (это для библиотек MS SDK) и сочетание "push" и "call" вызывает ее напрямую без переходов. LocalHandle equ __imp__LocalHandle@4 externdef __imp__LocalHandle@4:dword |
|
|
Дата: Авг 24, 2004 03:48:14 zzzyab если функция не прописана с таким е.р. способом Invoke не работает Либо ты заблуждаешься, либо я тебя не понял. По твоему такой код: ... foo proc p1 : dword, p2 : dword mov eax,p1 add eax,p2 ret foo endp ... ; где-то в программе invoke foo, 1000, 1001 ...требует спец inc файлы или использует е.р. способ? лучше прописывать так ... Это способ избавления от заглушек. Он не имеет никакого влияния на invoke. Ибо invoke хочет знать только прототип подпрограммы. |
|
|
Дата: Авг 24, 2004 19:44:58 q_q [ foo proc p1 : dword, p2 : dword mov eax,p1 add eax,p2 ret foo endp ... ; где-то в программе invoke foo, 1000, 1001 ] Данная вызов процедуры не нуждается в proto, т.к. foo определена ранее. А вот если так, то масм заругается: invoke foo, 1000, 1001 ... foo proc p1 : dword, p2 : dword mov eax,p1 add eax,p2 ret foo endp И поэтому proto должны быть определены ранее. Вот очём наверное имел ввиду zzzyab. Вы такими примерами запугаете новичков. :) |
|
|
Дата: Авг 25, 2004 04:28:37 · Поправил: q_q Avalonec И поэтому proto должны быть определены ранее. Вот очём наверное имел ввиду zzzyab. Если добавление прототипа подпрограммы называется "спец inc файлы" или "е.р. способ", то да. Imho большие проекты не пишут в одном файле, в котором подпрограммы можно разместить в нужном порядке, а иногда это невозможно сделать даже в одном файле, например, взаимный вызов, поэтому привычка писать прототипы - вполне нормальная. ps не хотел придираться к словам, хотел внести ясность. |
|
|
Дата: Авг 27, 2004 10:15:40 q_q Да, большие проекты никак не напишешь в одном файле, елсли тебе дороги своё здоровье и нервы. :) Я,вот уже достаточное время, перешёл на проектное ведение проекта, простите за туфтологию. :) Сейчас вот пишу предкомпилятор для масма. |
|
|
Дата: Авг 28, 2004 07:13:36 Как мне тогда прописать чтоб без заглушек, и с Invoke - cпособ с Proto - не убирает заглушки, и еще добавляет ненужные инструкции enter\leave. |
|
|
Дата: Авг 29, 2004 00:10:50 |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.047 |