Текущий архив: 2006.06.18;
Скачать: CL | DM;
ВнизDll не видит функции юнита Найти похожие ветки
← →
Mr tray (2006-06-01 22:32) [0]Здорово, ребята-мастера. Я вот решил подключить к dll один юнит. Только как сделать, чтоб dll видел функции, объявленные в этом юните?
Ошибка вылезает в секции exports. В dll в секции uses мой юнит прописан, там ошибки нет. Все процедуры и функции в юните я написал в секции implementation. Никаких форм, ассоциированных с юнитом, нет. Никаких классов я там не объявляю.
← →
Джо © (2006-06-01 22:34) [1]> Ошибка вылезает в секции exports.
Она, наверное, безымянная?
← →
Alx2 © (2006-06-01 22:35) [2]А можно взглянуть на эту секцию?
← →
DevilDevil © (2006-06-01 23:03) [3]А в dll-модуле функции из этого[другого] модуля видятся?
Если нет, то ошибка в этом; в этом случае сделай объявления, например так:unit MyUnit;
function SomeFunc(P1, P2 : integer) : boolean;
implementation
function SomeFunc(P1, P2 : integer) : boolean;
begin
//bla-bla-bla
Result := true;
end;
И ещё один вариант: в dll-модуле объяви функцию-эквивалент, которая возвратит результат по тем же параметрам из другого модуля...
<-- понять сложно, но можно :)
← →
Mr tray (2006-06-01 23:03) [4]ошибка:
undeclared identifier: <название функции>
секция uses в dll:
supportunit in "supportunit.pas";
секция implementation в юните содержит только объявление и описание, если так можно выразиться, функций и процедур.
общая структура юнита у меня такова:unit supportunit;
interface
uses
sysutils {и др.};
const
{константы}
type
{типы}
var
{переменные}
implementation
function func(i:byte):boolean; {это пример просто}
begin
result:=i>0;
end;
initialization
{некие действия}
finalization
{тоже действия, которые, как я понимаю, должны будут выполниться, когда мой dll будет закрыт}
end.
← →
Mr tray (2006-06-01 23:04) [5]аааа. DevilDevil © (01.06.06 23:03) [3] спасибо. теперь ясно, в чем моя ошибка.
← →
Джо © (2006-06-01 23:06) [6]> [4] Mr tray (01.06.06 23:03)
И где здесь объявление функций в секции interface?
← →
evvcom © (2006-06-02 08:27) [7]
> тоже действия, которые, как я понимаю, должны будут выполниться,
> когда мой dll будет закрыт
Не совсем так. Эти действия будут выполняться, когда именно этот модуль будет деинициализироваться.
Страницы: 1 вся ветка
Текущий архив: 2006.06.18;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.009 c