Форум: "Основная";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];
ВнизПередача параметров в dll Найти похожие ветки
← →
makey22 (2005-01-13 08:51) [0]господа програмеры столкнулся с интересным, на мой взгляд явлением. Создана dll которая принимает 3 параметра par1,par2,par3:real; когда вызываешь ее из программы пеарметры приходится передавать в последовательности par3,par2,par1.
Если ставишь нормально не работае. Кто нибудь может объяснить как от этого избавиться и откуда это берется?
← →
Skier © (2005-01-13 08:58) [1]
> Кто нибудь может объяснить как от этого избавиться
нужно выставить одно и тоже соглашение о передаче параметров в объявлении функции в DLL и в объявлении функции
в Host-приложении...
← →
makey22 (2005-01-13 09:42) [2]В том то и ворпрос, сто все выставлено одинаково
← →
Skier © (2005-01-13 09:43) [3]код в студию !
← →
Kerk © (2005-01-13 09:43) [4]makey22 (13.01.05 9:42) [2]
значит не одинаково. calling convention проверь.
← →
makey22 (2005-01-13 10:54) [5]Так функция описана в dll
function pfr(kod:real;kodpredp:real;new:real;god:real):Boolean;export;
так в вызывающей программе
TPFR = Function(kod:real;kodpredp:real;new:real;god: real): Boolean; StdCall;
а так я ее вызываю
LibHandl:=LoadLibrary("pfrdan.dll");
@pfr:=GetProcAddress(LibHandl,"pfr");
pfr(,1,predpkod,Kod);
подскажите, что я делаю не правельно
← →
KSergey © (2005-01-13 10:55) [6]
> Так функция описана в dll
> function pfr(kod:real;kodpredp:real;new:real;god:real):Boolean;export;
>
> так в вызывающей программе
> TPFR = Function(kod:real;kodpredp:real;new:real;god: real):
> Boolean; StdCall;
А говоришь - одинаково...
← →
makey22 (2005-01-13 11:15) [7]да, но другая функция при таком оформлении работает нормально
По поводу описаний: я так делал всегда и вроде работало. Первый раз стаким столкнулся. Подскажи как лучше сделать?
← →
Alexander Panov © (2005-01-13 11:28) [8]makey22 (13.01.05 11:15) [7]
Тебе уже ответитли в [1]
← →
Ega23 © (2005-01-13 11:37) [9]По поводу описаний: я так делал всегда и вроде работало. Первый раз стаким столкнулся. Подскажи как лучше сделать?
Скорее всего, до этого у тебя была функция без параметров, или с одним параметром. Соглашения о вызове должны быть одинаковыми и в DLL и в приложении. Если в DLL StdCall, то и в Application - StdCall. Если в DLL CDecl, то и в Application - CDecl.
← →
Anatoly Podgoretsky © (2005-01-13 12:08) [10]makey22 (13.01.05 09:42) [2]
В том то и ворпрос, сто все выставлено одинаково
Больше так не отвечай, будут сильно бить.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.054 c