Поиск:

Ответ в темуСоздание новой темы Создание опроса
> FASM 
:(
    Опции темы
eXz
Дата 24.7.2004, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 21.7.2003

Репутация: нет
Всего: нет



Возникло несколько вопросов по САБЖУ.

1. Можно ли на нем создавать DLL'ки?
2. Если можно, как на нем экспорировать функции из них?
3. Как статически линковать DLL'ки? (Может я криво выразился, короче, когда я пишу на пасике: procedure myfunc;external 'mydll.dll' name 'myfunc'; что-то типа такого).
4. Какие винда вообще накладывает требования на предоставляемые функции?
5. Как осуществляеться вызов функции библиотеки? (дальный call или, может быть, ближний smile.gif )

PM   Вверх
oleg1973
Дата 25.7.2004, 02:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 7
Всего: 34



1) можно (там даже пример есть)
2) можно
3) никак, делаеш импорт функ из нужной длл и все
4) а никаких требований
5) через invoke
к примеру
invoke MessageBox,0,txt,txt,0
txt db "My text",0


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
eXz
Дата 25.7.2004, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 21.7.2003

Репутация: нет
Всего: нет



Цитата
2. Если можно, как на нем экспорировать функции из них?

Цитата
2) можно

А как?

Цитата
3) никак, делаеш импорт функ из нужной длл и все

Не умею. Как?

Это сообщение отредактировал(а) eXz - 25.7.2004, 17:30
PM   Вверх
oleg1973
Дата 26.7.2004, 02:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 7
Всего: 34



Код
; DLL creation example

format PE GUI 4.0 DLL
entry DllEntryPoint

include '%fasminc%\win32a.inc'

section '.code' code readable executable

proc DllEntryPoint, hinstDLL,fdwReason,lpvReserved
mov eax,TRUE
return
endp

; VOID ShowErrorMessage(HWND hWnd,DWORD dwError);

proc ShowErrorMessage, hWnd,dwError
 .lpBuffer dd ?
enter
lea eax,[.lpBuffer]
invoke FormatMessage,FORMAT_MESSAGE_ALLOCATE_BUFFER+FORMAT_MESSAGE_FROM_SYSTEM,0,[dwError],LANG_NEUTRAL,eax,0,0
invoke MessageBox,[hWnd],[.lpBuffer],NULL,MB_ICONERROR+MB_OK
invoke LocalFree,[.lpBuffer]
return
endp

; VOID ShowLastError(HWND hWnd);

proc ShowLastError, hWnd
invoke GetLastError
stdcall ShowErrorMessage,[hWnd],eax
return
endp

section '.idata' import data readable writeable

 library kernel,'KERNEL32.DLL',\
  user,'USER32.DLL'

 import kernel,\
 GetLastError,'GetLastError',\
 SetLastError,'SetLastError',\
 FormatMessage,'FormatMessageA',\
 LocalFree,'LocalFree'

 import user,\
 MessageBox,'MessageBoxA'

section '.edata' export data readable

 export 'ERRORMSG.DLL',\
 ShowErrorMessage,'ShowErrorMessage',\
 ShowLastError,'ShowLastError'

section '.reloc' fixups data discardable



--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0677 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.