|
2D-программирование Вопросы, касающиеся двумерного программирования |
21.05.2007, 13:26
|
#1
|
Оператор ЭВМ
Регистрация: 17.04.2007
Сообщений: 31
Написано 0 полезных сообщений (для 0 пользователей)
|
CallDLL
Как мне выполнить функцию( mbn(Bnumb,Nnumb,MNnumb)
) из DLL спомощью CallDLL
|
(Offline)
|
|
21.05.2007, 16:52
|
#2
|
|
Re: CallDLL
CallDLL - это атавизм вчерашнего дня.
Сейчас все функции Длл-ок декларируются в файле с расширением ".decls"
|
|
|
21.05.2007, 17:50
|
#3
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: CallDLL
params=createbank(12)
pokeint params,0,Bnumb
pokeint params,4,Nnumb
pokeint params,8,MNnumb
results=createbank(4)
CallDLL( "mydll","mbn",params,results )
чо то вроде етого.
PS:
CallDLL - это атавизм вчерашнего дня.
Сейчас все функции Длл-ок декларируются в файле с расширением ".decls"
|
|
(Offline)
|
|
21.05.2007, 18:40
|
#4
|
|
Re: CallDLL
Diablo1909
лол жжош адназначна
без нее нельзя зделать динамическую линковку dll ... а без нее собственно не зделаеш систему плагинов
|
|
|
21.05.2007, 21:35
|
#5
|
Оператор ЭВМ
Регистрация: 17.04.2007
Сообщений: 31
Написано 0 полезных сообщений (для 0 пользователей)
|
Я проклянаю слово bank !!!
Читаю функцию:
params=CreateBank(8)
PokeFloat params,0,1.1
PokeFloat params,1,3.2
results=CreateBank(4)
result#=CallDLL( "System\systems.dll","Bmin",params,results ) ;--"cdecl"
|
И он мне такие цифры выдает(1.1*3.2 = 2133345.....)
|
(Offline)
|
|
21.05.2007, 21:58
|
#6
|
|
Re: CallDLL
butcher
может все правильно но ты выводиш указатель ?
|
|
|
21.05.2007, 22:00
|
#7
|
Оператор ЭВМ
Регистрация: 17.04.2007
Сообщений: 31
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: CallDLL
В смысле?:
может все правильно но ты выводиш указатель ?
|
|
(Offline)
|
|
21.05.2007, 22:43
|
#8
|
Дэвелопер
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений (для 110 пользователей)
|
Re: CallDLL
PeekFloat(results, 0)
|
(Offline)
|
|
22.05.2007, 01:06
|
#9
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: CallDLL
okeFloat params,0,1.1
PokeFloat params,1,3.2
я выделил цифры.
ето смещение в байтах от начала массива.
любой ребенок знает, что float имеет размер в 4 байта. поетому и отступ должен быть 4.
okeFloat params,0,1.1
PokeFloat params,4,3.2
так. ты переписывал первое свое число (а точнее три его младших байта)
|
(Offline)
|
|
22.05.2007, 19:20
|
#10
|
Оператор ЭВМ
Регистрация: 17.04.2007
Сообщений: 31
Написано 0 полезных сообщений (для 0 пользователей)
|
Опечатался малек :
params=CreateBank(8)
PokeFloat params,0,1.1
PokeFloat params,4,3.2
results=CreateBank(4)
result#=CallDLL( "System\systems.dll","Bmin",params,results )
|
Я писал dll в Delphi вот:
library systems;
uses
SysUtils,
Classes;
{$R *.res}
function Bmin(num1,num2:integer):integer; cdecl(stdcall);
begin
Result:=num2*num1;
end;
exports Bmin name 'Bmin' ;
begin
end.
Вроде все ок!!! В Game Maker все работает!!!
|
(Offline)
|
|
22.05.2007, 20:15
|
#11
|
Знающий
Регистрация: 04.08.2006
Адрес: Россия
Сообщений: 297
Написано 39 полезных сообщений (для 70 пользователей)
|
Re: CallDLL
Так ок или не ок?
Если не ок, то смотри пост 8:
Результат = PeekFloat(results, 0)
т.е. нужно еще из банка вывода вытащить результат.
Да кстати, если передаешь в функцию флоат, то и в длл обьяви параметры как флоат.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:41.
|