forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=109)
-   -   Как приделать к BlitzMax DLL (http://forum.boolean.name/showthread.php?t=8431)

Черный крыс 29.06.2009 01:47

Ответ: Как приделать к BlitzMax DLL
 
2Randomize - покопалсо в компе....ненашел сорец астара...я его очень давно писал...а если учесть что я имею привычку сносить комп каждые 2 месяца и при этом не забочусь о сохранности своих старых наработок....то естественно исходник ДЛЛки безвозратно утерян...но...зачем тебе импортить ДЛЛку в БМакс ? Когда можно на этом же БМаксе написать такой же астар. Кстати я Астар писал на Пурике...поэтому он по скорости такой же как и код БМакса (у обоих транслятор Flat asembler). Могу дать Астар под БМакс но он не такой конечно готовый как эта ДЛЛка... - тама он чисто базово ищет путь....но усовершенствовать его под конкретный проект не составит труда.

Randomize 29.06.2009 07:35

Ответ: Как приделать к BlitzMax DLL
 
Цитата:

Сообщение от Diablo1909 (Сообщение 109329)
2Randomize - покопалсо в компе....ненашел сорец астара...я его очень давно писал...а если учесть что я имею привычку сносить комп каждые 2 месяца и при этом не забочусь о сохранности своих старых наработок....то естественно исходник ДЛЛки безвозратно утерян...но...зачем тебе импортить ДЛЛку в БМакс ? Когда можно на этом же БМаксе написать такой же астар. Кстати я Астар писал на Пурике...поэтому он по скорости такой же как и код БМакса (у обоих транслятор Flat asembler). Могу дать Астар под БМакс но он не такой конечно готовый как эта ДЛЛка... - тама он чисто базово ищет путь....но усовершенствовать его под конкретный проект не составит труда.

Сам AStar мне не был нужен, просто было любопытно как в BlitzMax использовать DLL. Пример реализации A* есть в стандартоной поставке blitzmax.

Rapido 05.03.2010 16:21

Ответ: Как приделать к BlitzMax DLL
 
Тоже не могу разобратся с декларированием библиотек.
(Только начинаю знакомится с Блитцом)

Код:

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

Global Привет("Hello")

Global lib%=LoadLibraryA("1.dll")
If lib% Then
    Привет =GetProcAddress(lib,"SomeFunction")
Else
    RuntimeError("Еггор при открытие библы)  ")
    End
End If

Ошибка компиляции Global Привет("Hello")
Expecting identifier but encountered @


Еще такое нашёл
Код:

Framework brl.standardio
Import Pub.Win32

MyLib = LoadLibraryA ("1.dll")
Global  l_USER_LOAD(value:String)  = GetProcAddress (MyLib ,"SomeFunction")

l_USER_LOAD("Hello!")
FreeLibrary(Lib_Handle)
End

Extern "win32"
        Function FreeLibrary(hLibrary:Int)'
End Extern

Это работает но частично, Библиотека аттачится, выдаёт мессаг бокс как и задумано, только вместо текста корявки какие-то в уникоде, притом независимо что передавать, на выходе текст один и тот же ("?A?@?A"). Такое чуство что просто параметр неправильно передаёт. В библиотеке ставил ByVal параметр, вместо ByRef одна бадья, возвращает 0, вместо корявок. Может в самом блитзе указать что передавать нужно значение а не ссылку.

Dream 05.03.2010 19:05

Ответ: Как приделать к BlitzMax DLL
 
О_О
Цитата:

Ошибка компиляции Global Привет("Hello")
толсто....

Rapido 05.03.2010 23:37

Ответ: Как приделать к BlitzMax DLL
 
А по поводу второго примера? Он хоть как-то да работает

Поменял во втором примере String на Long, ну и в библиотеке соответствующе. Ловлю EXCEPTION_ACCES_VIOLATION

SBJoker 06.03.2010 13:11

Ответ: Как приделать к BlitzMax DLL
 
String это Byte Ptr емнип


Часовой пояс GMT +4, время: 13:26.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot