Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.48 MB
Время: 0.037 c
2-1148906451
Гуест
2006-05-29 16:40
2006.06.18
Как удалить все эдиты на форме?


15-1148487355
Petgt
2006-05-24 20:15
2006.06.18
Срочно! кто может, помогите!


2-1149134771
Atanas
2006-06-01 08:06
2006.06.18
Код выполняемый сразу после запуска


15-1148220731
DillerXX
2006-05-21 18:12
2006.06.18
type AString = array [1..maxInput] of string;


9-1130206311
JUS
2005-10-25 06:11
2006.06.18
Зацените мою демку