Показать сообщение отдельно
  #2  
Старый 20.11.2016, 12:18
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Как обычно, ничего не понятно но раз без примеров, тогда и обще-выборочный ответ - в понятии библиотек есть одна аксиома - функции и процедуры могут быть лишь локальными или экспортируемыми, универсалов нет, причём локали видны только внутри самой библиотеки и ни одна сборка не может их вызвать снаружи, потому как без объявления в "шапке" они не функции, это просто набор машкодных байтов
Цитата:
...параметры идут в стек...
Это как я понимаю, сишный прикол, поскольку в делфях параметры приципиально лежат в регистрах, со стеком идёт другая работа, поэтому, чтоб не спутать, соглашение о вызовах и предусматривает директиву stdcall для "скобяных поделок" и других языков, если они __stdcall
Цитата:
...Никакой PE-explorer эти процедуры не видит...
Dll может быть и сжатой какимнить компрессором

Цитата:
...но это и не важно...
Откуда такая уверенность, нужна таблица поскольку динамически, через loadLibrary вызывается так
Код:
...
// объявление функции и определение с типами параметров
type
  TSomefun = function(par1: integer): integer;
...
var
 i: integer;
 dllhandle: Thandle;
 abs: TSomefun;
begin

// загрузка
 dllhandle:= LoadLibrary('dll.dll');

// указатель на функцию
 @abs:= GetProcAddress(dllhandle, 'NameFun' {"родное" название});

// вызов
  i:= IntToStr(abs(5));

// выгрузка
  FreeLibrary(dllhandle);
end;
без имени и типа параметров/результата функцию видимо не вызвать никак, может и ошибаюсь
Ответить с цитированием