· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.HELHEIM —› <Помогите создать програмку на win32>

Посл.отвђт Сообщен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

zzzyab
dZen


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.047