Посл.ответ |
Сообщение |
Ранг: 42.4 (посетитель) Активность: 0.01↘0 Статус: Участник
|
Создано: 11 мая 2006 08:29 · Личное сообщение · #1
Как создать на Асме (конкретно - на MASM) свою DLL и заюзать функции из неё в программе?
| Сообщение посчитали полезным: |
|
Ранг: 282.8 (наставник), 24thx Активность: 0.26↘0 Статус: Участник win32.org.ru
|
Создано: 11 мая 2006 08:35 · Личное сообщение · #2
killsniper пишет:
и заюзать функции
этого не помню, вспомнил, ток как компилить:
C:/masm32/bin/ml /c /coff /Cp mydll.asm
C:/masm32/bin/link /DLL /DEF:mydll.def /SUBSYSTEM:WINDOWS /LIBPATH:c:\masm32\lib mydll.obj
----- may all your PUSHes be POPed! | Сообщение посчитали полезным: |
Ранг: 44.7 (посетитель) Активность: 0.04↘0 Статус: Участник
|
Создано: 11 мая 2006 08:38 · Личное сообщение · #3
killsniper пишет:
Как создать на Асме (конкретно - на MASM) свою DLL и заюзать функции из неё в программе?
Блин..... Неужели yandex.ru опять сдох????
| Сообщение посчитали полезным: |
Ранг: 282.8 (наставник), 24thx Активность: 0.26↘0 Статус: Участник win32.org.ru
|
Создано: 11 мая 2006 08:45 · Личное сообщение · #4
killsniper, у мня пример есть, кидай мыло в личку...
----- may all your PUSHes be POPed! | Сообщение посчитали полезным: |
Ранг: 25.0 (посетитель) Активность: 0.01↘0 Статус: Участник
|
Создано: 11 мая 2006 14:22 · Личное сообщение · #5
В самом дистрибутиве masm'а имеются примеры DLL'ок и их прикрутка к проге!
| Сообщение посчитали полезным: |
Ранг: 42.4 (посетитель) Активность: 0.01↘0 Статус: Участник
|
Создано: 11 мая 2006 17:15 · Личное сообщение · #6
Пасибо всем.
Яндекс не сдох, а выдаёт какую-то бодягу.
| Сообщение посчитали полезным: |
Ранг: 230.5 (наставник) Активность: 0.18↘0 Статус: Участник Norg
|
Создано: 11 мая 2006 19:01 · Личное сообщение · #7
killsniper Скачай с wasm.ru masm32 там в папке Туториал дохрена примеров
----- M&#225 enginn renna undan &#254v&#237 sem honum er skapa&#240 | Сообщение посчитали полезным: |
Ранг: 122.3 (ветеран) Активность: 0.05↘0 Статус: Участник
|
Создано: 11 мая 2006 19:06 · Поправил: intty · Личное сообщение · #8
%include "c:\nasm\inc\win32n.inc"
global mySetText
export mySetText
global myGetText
export myGetText
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::
[segment code use32 class='CODE']
..start:
dllstart:
mov eax,1
ret 12
;with using stack frame
;One param - offset to stored string
mySetText:
push ebp
mov ebp,esp
mov esi,[ebp+08h]
mov edi,dword stText
mov ecx,[ebp+0Ch]
rep movsb
pop ebp
ret
;with using stack frame
;One param - offset to buffer recieved text
myGetText:
push ebp
mov ebp,esp
mov esi,dword stText
mov edi,dword [ebp+08h]
mov ecx,[ebp+0Ch]
rep movsb
pop ebp
ret
section .BSS
stText resb 020h
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
[added]
блин. кажется я масм с насмом попутал. ну может пригодится..
| Сообщение посчитали полезным: |
Ранг: 123.7 (ветеран) Активность: 0.1↘0 Статус: Участник 1nn0$/100
|
Создано: 11 мая 2006 21:53 · Личное сообщение · #9
Заюзай RadAsm там темплейт готовый. Ну и Iczelion'а почитай.
----- Blame the victim! | Сообщение посчитали полезным: |
Ранг: 251.8 (наставник), 17thx Активность: 0.12↘0 Статус: Участник Seeker
|
Создано: 11 мая 2006 22:36 · Личное сообщение · #10
killsniper
а можно поинтересоваться, почему именно на асме?
----- DREAMS CALL US | Сообщение посчитали полезным: |
Ранг: 748.2 (! !), 390thx Активность: 0.37↘0 Статус: Участник bytecode!
|
Создано: 18 мая 2006 15:06 · Личное сообщение · #11
Хм, раз уж подняли тему, то такой вопрос:
Есть на асме либа, у нее одна функция экспортируется.
Параметр один тоже - тип DWORD
Должен передаваться путь через этот параметр dllке.
Какой тип в делфях этот параметр будет иметь?
PChar пробовал - передает нормально только строку длиной в один символ, если длиннее передаешь, то лабуда приходит какая-то...
----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. | Сообщение посчитали полезным: |
Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE
|
Создано: 18 мая 2006 15:16 · Поправил: Hellspawn · Личное сообщение · #12
я не знаю конено =) но должно быть норм..
пробовал "stdcall" и т.п. приписать к вызову?
----- [nice coder and reverser] | Сообщение посчитали полезным: |
Ранг: 307.9 (мудрец), 196thx Активность: 0.18↘0 Статус: Участник
|
Создано: 18 мая 2006 15:18 · Личное сообщение · #13
4kusNick
Параметр один тоже - тип DWORD
Такой же будет и в Делфях
Если юзать PChar - то только как масив, тогда все будет ок.
----- Don_t hate the cracker - hate the code. | Сообщение посчитали полезным: |
Ранг: 748.2 (! !), 390thx Активность: 0.37↘0 Статус: Участник bytecode!
|
Создано: 18 мая 2006 15:39 · Личное сообщение · #14
Как массив?
А можно поподробней?
Спасибо.
----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. | Сообщение посчитали полезным: |
Ранг: 162.2 (ветеран) Активность: 0.09↘0 Статус: Участник
|
Создано: 18 мая 2006 16:34 · Личное сообщение · #15
4kusNick
Ф-ия получает строку или указатель на неё?
| Сообщение посчитали полезным: |
Ранг: 307.9 (мудрец), 196thx Активность: 0.18↘0 Статус: Участник
|
Создано: 18 мая 2006 16:40 · Личное сообщение · #16
4kusNick
Точно не помню, но вроде так:
Var Переменная : PChar[1024];
или
Var Переменная : array [0..255] of PChar;
----- Don_t hate the cracker - hate the code. | Сообщение посчитали полезным: |
Ранг: 6.7 (гость) Активность: 0=0 Статус: Участник
|
Создано: 18 мая 2006 20:40 · Личное сообщение · #17
А что должна выполнять эта функция? Может ей обычный dword просто передать
| Сообщение посчитали полезным: |
Ранг: 53.9 (постоянный), 19thx Активность: 0.04↘0 Статус: Участник
|
Создано: 19 мая 2006 08:15 · Личное сообщение · #18
Попробуй Integer(PChar('Строка'))
| Сообщение посчитали полезным: |
Ранг: 748.2 (! !), 390thx Активность: 0.37↘0 Статус: Участник bytecode!
|
Создано: 19 мая 2006 11:27 · Личное сообщение · #19
Функция, ну, скажем, вызов обычного мессажбокса (параметр - строка самого сообщения).
Спасибо всем, попробую...
----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. | Сообщение посчитали полезным: |