![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Dll не видит функции юнита [D6, XP]
Mr tray © (2006-06-01 22:32:00)Здорово, ребята-мастера. Я вот решил подключить к dll один юнит. Только как сделать, чтоб dll видел функции, объявленные в этом юните?
Ошибка вылезает в секции exports. В dll в секции uses мой юнит прописан, там ошибки нет. Все процедуры и функции в юните я написал в секции implementation. Никаких форм, ассоциированных с юнитом, нет. Никаких классов я там не объявляю.
evvcom (2006-06-02 08:27:00) [1]
> тоже действия, которые, как я понимаю, должны будут выполниться,
> когда мой dll будет закрыт
Не совсем так. Эти действия будут выполняться, когда именно этот модуль будет деинициализироваться.
Джо (2006-06-01 23:06:00) [2]> [4] Mr tray (01.06.06 23:03)
И где здесь объявление функций в секции interface?
Mr tray (2006-06-01 23:04:00) [3]аааа. DevilDevil © (01.06.06 23:03) [3] спасибо. теперь ясно, в чем моя ошибка.
DevilDevil (2006-06-01 23:03:00) [4]А в 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:00) [5]ошибка:
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.
Alx2 (2006-06-01 22:35:00) [6]А можно взглянуть на эту секцию?
Джо (2006-06-01 22:34:00) [7]> Ошибка вылезает в секции exports.
Она, наверное, безымянная?