Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Программирование игр для компьютеров > BlitzMax > 2D-программирование

Ответ
 
Опции темы
Старый 04.06.2009, 18:32   #1
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: Планета Земля
Сообщений: 4,114
Написано 2,316 полезных сообщений
(для 6,453 пользователей)
Как приделать к BlitzMax DLL

Хочу приделать Dll к BlitzMax судя по статье Blitz Et Cetera, где я черпал инфу по данному вопросу выяснилось что это делается вот так:

SuperStrict

Module тратата.тратата
Import brl.blitz
	
Const DLL:String= "НацНац.dll"

Extern "win32"
	Function FindWindowA%(class%,title$z)
	Function LoadLibraryA(lib$z)
	Function GetProcAddress:Byte Ptr(lib%,fname$z) 
End Extern


	Global Привет(x%,y%) "win"
	Global Пока   (x%,y%) "win"



Global lib%=LoadLibraryA()
If lib% Then
	Привет(x%,y%) =GetProcAddress(lib,"Preved")
	Пока   (x%,y%) =GetProcAddress(lib,"GoodPoka")
Else
	RuntimeError("Не не не, Девид Блейн!  " + DLL) 
	End
End If
Но не канает. :э(
Очевидно в ковычках в GetProcAddress(lib,"Preved") помимо названия фции должны быть
ещё и её параметры, но как их там указывать я пока не понял.
Ктонибуть может помочь?
А поможет?
__________________
Retry, Abort, Ignore? █
Пека: AMD Athlon II x4 2.6Ghz; 8Gb ram; Nvidia Geforce GTX 750 Ti
(Offline)
 
Ответить с цитированием
Старый 04.06.2009, 18:46   #2
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,914
Написано 3,402 полезных сообщений
(для 9,297 пользователей)
Ответ: Как приделать к BlitzMax DLL

Скорее так:
SuperStrict

Module тратата.тратата
Import brl.blitz
    
Const DLL:String= "НацНац.dll"

Extern "win32"
    Function FindWindowA%(class%,title$z)
    Function LoadLibraryA(lib$z)
    Function GetProcAddress:Byte Ptr(lib%,fname$z) 
End Extern


    Global Привет(x%,y%) "win32"
    Global Пока   (x%,y%) "win32"



Global lib%=LoadLibraryA()
If lib% Then
    Привет =GetProcAddress(lib,"Preved@8")
    Пока    =GetProcAddress(lib,"GoodPoka@8")
Else
    RuntimeError("Не не не, Девид Блейн!  " + DLL) 
    End
End If
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Randomize (04.06.2009)
Старый 04.06.2009, 19:00   #3
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: Планета Земля
Сообщений: 4,114
Написано 2,316 полезных сообщений
(для 6,453 пользователей)
Ответ: Как приделать к BlitzMax DLL

@8 - эт чё??
__________________
Retry, Abort, Ignore? █
Пека: AMD Athlon II x4 2.6Ghz; 8Gb ram; Nvidia Geforce GTX 750 Ti
(Offline)
 
Ответить с цитированием
Старый 04.06.2009, 19:10   #4
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 03.09.2005
Сообщений: 14,014
Написано 6,795 полезных сообщений
(для 20,916 пользователей)
Ответ: Как приделать к BlitzMax DLL

8 байт входных аругментов в функции (4+4 [2 int т.е.])
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Randomize (05.06.2009)
Старый 04.06.2009, 21:44   #5
Черный крыс
 
Сообщений: n/a
Ответ: Как приделать к BlitzMax DLL

Если у DLLки имееться статическая библиотека, то задача упроститься.
 
Ответить с цитированием
Старый 05.06.2009, 07:11   #6
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Ответ: Как приделать к BlitzMax DLL

Сообщение от impersonalis Посмотреть сообщение
8 байт входных аругментов в функции (4+4 [2 int т.е.])
по-моему там не важно int это или byte, просто (4 * кол-во параметров)

скоро моё юбилейное сообщение, ждите
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Randomize (05.06.2009)
Старый 05.06.2009, 07:36   #7
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,914
Написано 3,402 полезных сообщений
(для 9,297 пользователей)
Ответ: Как приделать к BlitzMax DLL

Ну да, в основном в win32 все входные параметры dll это 4х байтовые целые или дробные.
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Randomize (05.06.2009)
Старый 05.06.2009, 16:10   #8
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: Планета Земля
Сообщений: 4,114
Написано 2,316 полезных сообщений
(для 6,453 пользователей)
Ответ: Как приделать к BlitzMax DLL

Сообщение от Diablo1909 Посмотреть сообщение
Если у DLLки имееться статическая библиотека, то задача упроститься.
Статитческая библиотека?

Эксперементы ставлю на AStar.dll
__________________
Retry, Abort, Ignore? █
Пека: AMD Athlon II x4 2.6Ghz; 8Gb ram; Nvidia Geforce GTX 750 Ti
(Offline)
 
Ответить с цитированием
Старый 05.06.2009, 18:40   #9
Черный крыс
 
Сообщений: n/a
Ответ: Как приделать к BlitzMax DLL

Сообщение от Randomize Посмотреть сообщение
Статитческая библиотека?

Эксперементы ставлю на AStar.dll
ага...они компиляться вместе с DLL. В этих файлах храняться интерфейсы к DLL. Что то типа "готового хидера". Многие разрабы кладут их вместе с СДК.

Поищи в папочках, может найдешь....либо мелкосовтовский AStar.lib либо gcc-шный AStar.a

В Блиц-максе просто импортируй его : Import AStar.lib, после этого тебе останеться только обьявить эти функции в БМаксе (Extern::EndExtern)

Насчет AStar.dll - это случайно не мой Астар для Блиц3Д ? Могу дать lib-файл.
 
Ответить с цитированием
Старый 07.06.2009, 01:53   #10
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: Планета Земля
Сообщений: 4,114
Написано 2,316 полезных сообщений
(для 6,453 пользователей)
Ответ: Как приделать к BlitzMax DLL

Именно! Та самая AStar.dll )
От lib не откажусь, заранее спасибо!
__________________
Retry, Abort, Ignore? █
Пека: AMD Athlon II x4 2.6Ghz; 8Gb ram; Nvidia Geforce GTX 750 Ti
(Offline)
 
Ответить с цитированием
Старый 08.06.2009, 14:40   #11
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: Планета Земля
Сообщений: 4,114
Написано 2,316 полезных сообщений
(для 6,453 пользователей)
Ответ: Как приделать к BlitzMax DLL

Итог эксперементов:
Strict
Module Subject.AStar
Import Pub.Win32

Private
Local lib%

Public

lib = LoadLibraryA("AStar.dll")

Global AStar_INIT(xMap%,yMap%) = GetProcAddress(lib, "AStar_INIT")
Global EstimateHcost%(a%,b%,targetx%,targety%) = GetProcAddress(lib, "EstimateHcost")
Global FindPath%(pathfinderID%,mapWidth%,mapHeight%,startX%,startY%,targetX%,targetY%,stepBystep%) = GetProcAddress(lib, "FindPath")
Global ReadPathX%(pathfinderID%,pathLocation%) = GetProcAddress(lib, "ReadPathX")
Global ReadPathY%(pathfinderID%,pathLocation%) = GetProcAddress(lib, "ReadPathY")
Global ReadPath%(pathfinderID%) = GetProcAddress(lib, "ReadPath")
Global Get_walkability%(x%,y%) = GetProcAddress(lib, "Get_walkability")
Global Set_walkability(x%,y%,param%) = GetProcAddress(lib, "Set_walkability")
Global Get_listArray%(x%,y%) = GetProcAddress(lib, "Get_listArray")
Global Set_listArray(x%,y%,param%) = GetProcAddress(lib, "Set_listArray")
Global Get_parentX%(x%,y%) = GetProcAddress(lib, "Get_parentX")
Global Get_parentY%(x%,y%) = GetProcAddress(lib, "Get_parentY")
Global Get_Fcost%(x%,y%) = GetProcAddress(lib, "Get_Fcost")
Global Get_Gcost%(x%,y%) = GetProcAddress(lib, "Get_Gcost")
Global Get_Hcost%(x%,y%) = GetProcAddress(lib, "Get_Hcost")
Global CheckForIsland(x%,y%) = GetProcAddress(lib, "CheckForIsland")

lib = 0
Но вот Shimatta!!!!
Никак не хочет блиц его вкушивать.
Путь: BlitzMax\mod\subject.mod\AStar.mod\AStar.bmx
Тамже и DLL обитает...
MinGW есть.
Скомпилил.
Building test
Compiling:test.bmx
Compile Error: Can't find interface for module 'subject.astar'
[C:/Documents and Settings/Администратор/Рабочий стол/astar/test.bmx;1;1]
Build Error: failed to compile C:/Documents and Settings/Администратор/Рабочий стол/astar/test.bmx
Process complete
Wtf???
__________________
Retry, Abort, Ignore? █
Пека: AMD Athlon II x4 2.6Ghz; 8Gb ram; Nvidia Geforce GTX 750 Ti

Последний раз редактировалось Randomize, 08.06.2009 в 15:13.
(Offline)
 
Ответить с цитированием
Старый 09.06.2009, 07:21   #12
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Ответ: Как приделать к BlitzMax DLL

БМ не может найти модуль. Ты его скомпилил вообще?
и где лежат сорцы, напиши полный путь к папке.

П.С. штука парни, это - 1000
__________________
(Offline)
 
Ответить с цитированием
Старый 09.06.2009, 15:56   #13
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: Планета Земля
Сообщений: 4,114
Написано 2,316 полезных сообщений
(для 6,453 пользователей)
Ответ: Как приделать к BlitzMax DLL

Ну я помоему всё что можно расписал...
__________________
Retry, Abort, Ignore? █
Пека: AMD Athlon II x4 2.6Ghz; 8Gb ram; Nvidia Geforce GTX 750 Ti
(Offline)
 
Ответить с цитированием
Старый 10.06.2009, 08:01   #14
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Ответ: Как приделать к BlitzMax DLL

а скомпилил ты под дебаг и под релиз? может кинешь архив проекта.
__________________
(Offline)
 
Ответить с цитированием
Старый 13.06.2009, 20:15   #15
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: Планета Земля
Сообщений: 4,114
Написано 2,316 полезных сообщений
(для 6,453 пользователей)
Ответ: Как приделать к BlitzMax DLL

Сообщение от dimanche13 Посмотреть сообщение
а скомпилил ты под дебаг и под релиз? может кинешь архив проекта.
Спасибо, но проблема уже решена.
Как ни странно но виной всему проклятые вирусы, после того как восстановил с образа винч всё стало работать как положено.
Зря я шум поднял, прошу прощения.
__________________
Retry, Abort, Ignore? █
Пека: AMD Athlon II x4 2.6Ghz; 8Gb ram; Nvidia Geforce GTX 750 Ti
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
BlitzMax & XML dimanche13 Модули для BlitzMax 5 24.11.2008 08:23
BlitzMax 130 jimon BlitzMax 2 07.05.2008 14:21
BlitzMax & ini dimanche13 Модули для BlitzMax 0 20.12.2007 12:06
BlitzMax 1.26 johnk BlitzMax 21 18.10.2007 13:05
Помогите приделать физику к автомобилю neoleg 3D-программирование 26 16.06.2007 04:50


Часовой пояс GMT +1, время: 07:43.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com