Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.11.07;
Скачать: [xml.tar.bz2];

Вниз

dll наоборот :)   Найти похожие ветки 

 
CrazyAngel   (2002-09-24 16:44) [0]

Кто-нибудь знает как находясь в dll вызвать функцию расположенную в моей программе ?


 
Song   (2002-09-24 16:47) [1]

Послать какое-нибудь сообщение программе, которая, получив последнее, исполнит вашу функцию.


 
Digitman   (2002-09-24 17:05) [2]

Нужно знать заранее (или узнать в run-time) адрес этой ф-ции.
Способов - море. Начиная с того, которым ты пользуешься для определения адреса ЭКСПОРТИРУЕМОЙ ф-ции в DLL-модуле ... Точно так же и EXE-модуль вправе экспортировать ф-цию


 
CrazyAngel   (2002-09-24 17:09) [3]

Т.е. если я напишу в export имя этой функции то как мне получить ее адрес ?
getprocadress c указанием hwnd екзешника ?


 
Digitman   (2002-09-24 17:26) [4]

да .... только не "hwnd екзешника", а его hInstance, полученный по GetModuleHandle("file.exe")


 
CrazyAngel   (2002-09-24 17:30) [5]

OK, спасибо за ответы пойду еще экспериментировать :)


 
PVOzerski   (2002-09-25 05:14) [6]

Вообще-то это примерно то, что называется callback-функция и чем кишит WinAPI. Использование callback"а сводится к получению dll"ью точки входа в callback (для чего соответствующий адрес передается в dll как параметр некой функции - хотя можно извратиться и через экспортируемую функцию - только это редко действительно бывает необходимо). Только не забывайте контролировать соответствие типов и соглашений о вызовах.

работающий пример (D3):

program EXE;
{$apptype console}
function MyCallBack(x:integer):integer;
begin
Result:=2*x;
end;

function FromDll(p:pointer):integer;
external "DLL.dll" name "FromDll";

begin
writeln(FromDll(@MyCallBack));
end.

library DLL;
{$apptype console}
type
tProc=function(x:integer):integer;
function FromDll(p:tProc):integer;export;
var
x:integer;
begin
readln(x);
Result:=p(x);
end;
exports
FromDll name "FromDll";
begin
end.


 
Viktor Kushnir   (2002-09-25 07:12) [7]

А я передовал просто указатель на нужную функцию из exe в dll



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.11.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
1-21565
vlad_ri1
2002-10-29 21:22
2002.11.07
Старый, добрый MS Office или о версиях...


3-21390
студент2002
2002-10-17 18:47
2002.11.07
ADOConnection


3-21370
First_May
2002-10-17 10:28
2002.11.07
Две базы...


1-21584
Vint
2002-10-28 16:57
2002.11.07
QuickReport


1-21653
DDDeN
2002-10-25 17:50
2002.11.07
Клики и рабочий стол





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский