Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.10;
Скачать: CL | DM;

Вниз

Помогите с DLL   Найти похожие ветки 

 
Эдуард   (2002-10-02 08:53) [0]

Есть моя DLL. В ней описано пара функций.
Надо узнать если при обращении к функции DLL была вызвана функция, которой не существует, то показать имя вызываемой функции и ее параметры. Если не понятно я как нибудь перефразирую.

Заранее спасибо.


 
Polevi ©   (2002-10-02 09:00) [1]

>Если не понятно я как нибудь перефразирую.
будь добр


 
VAleksey ©   (2002-10-02 09:07) [2]

да уж перефразируй. И поподробнее задачу опиши.
Хотя ... вроде ясно. Просто код приведи в котором ты вызываешь функцию.


 
Эдуард   (2002-10-02 09:51) [3]

Короче.

Есть DLL моя, при обращении к ней из внешней программы естественно вызывается какая-то функция, предположительно описанная в этой DLL. Но если нет такой функции, то DLL вернет значение 0, т.е. такой функции нет. А мне надо в DLLMain узнать к какой функции обращалась программа(название функции, и желательно её параметры).


 
Polevi ©   (2002-10-02 10:12) [4]

ты совершенно не понимаешь что есть DLL
>то DLL вернет значение 0
ты имеешь в виду GetProcAddress ??
книжку тебе надо почитать, а пока можешь даже не пытаться написать что-ниюудь, рано тебе IMHO


 
Эдуард   (2002-10-02 10:46) [5]

Мля.. Я не имел ввиду в прямом смысле или точно. Я просто хочу донести суть. Имею ввиду что например rundll32.exe напишет "Несуществующая точка входа" если функуции вызываемой в DLL существовать не будет (или что-то вроде того). А мне надо чтоб моя DLL (о которых я совершенно не понимаю :)) обработала это сама и поняла что вызывается функция (например "disablekeypad") и сказала мне (например "Вызвана функция disablekeypad"). Блин теперь понятно????


 
Эдуард   (2002-10-02 10:48) [6]

И еще 2Polevi: Перед тем как сказать " можешь даже не пытаться написать что-ниюудь, рано тебе IMHO" лучше бы прочитал оба сообщения, и попытался понять что мне требуется. А если не можешь(не хочешь) помочь то какого лезешь? А обосрать каждый может IMHO.


 
Игорь Шевченко ©   (2002-10-02 11:02) [7]

Эдуард (02.10.02 10:48)

Книги, оно все-таки надо читать, оно рулез есть. Тогда подобных фраз
> Но если нет такой функции, то DLL вернет значение 0, т.е.
> такой функции нет
просто не напишешь. Потому как вызов функции из DLL не имеет никакого отношения к DLLmain


 
Эдуард   (2002-10-02 12:06) [8]

Вы меня вообще извините за неграмотнось. Но все-таки может найдется добрый человек и поможет мне. Еще раз попробую изложить суть проблемы.

Есть моя DLL, в которой описаны две функции, которые могут вызываться например так rundll32.exe mydll.dll,showmessage.

Если здесь уже не понятно, то напишите.

Затем я обращаюсь к ней(DLL) таким образом rundll32.exe mydll.dll,unknown. Подразумевается, что функция unknown не описана в DLL.

Вопрос в том, что мне надо чтоб DLL поняла что пытаюсь я вызвать функцию unknown и дала мне об этом знать.

Надеюсь, что сейчас все понятно.


 
Игорь Шевченко ©   (2002-10-02 12:08) [9]



> Вопрос в том, что мне надо чтоб DLL поняла что пытаюсь я
> вызвать функцию unknown и дала мне об этом знать.


Невозможно


 
Эдуард   (2002-10-02 12:13) [10]

А как нибудь типа Application.ExeName и ParamStr()


 
Digitman ©   (2002-10-02 12:18) [11]

>Эдуард

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


 
Юрий Зотов ©   (2002-10-02 12:24) [12]

> Эдуард

Сравним DLL с моей записной книжкой. Вызовы ее функций - это звонки по телефонам, которые в ней записаны. Я звоню человеку - он что-то делает.

Вы хотите, чтобы о моем звонке по постороннему телефону (не записанному в книжке) узнал кто-то из тех, кто в ней записан и что-то сделал. САМ узнал, без дополнительных оповещений.

Скажите, это возможно?

DLL - это набор функций. КАК одна из этих функций может САМА узнать, что Ваша программа что-то там попыталась сделать?

И DllMain здесь ни при чем. Это всего лишь код, который автоматически выполняется при загрузке и выгрузке DLL. Но не при вызовах ее функций (или при попытках их вызовов).


 
Эдуард   (2002-10-02 12:24) [13]

Понятно. Вот этого я незнал.

А вот в DLLMain есть типа DLLProc, в которой есть param1.
И если он(PAram1) равен DLL_THREAD_ATTACH, то неужели уже здесь DLL не щнает к какой функции идет обращение?


 
Эдуард   (2002-10-02 12:25) [14]

Все на предыдущее сообщение забейте.

Всем большое спасибо за понимание и терпимость ко мне.



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

Текущий архив: 2002.10.10;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.015 c
1-31881
MAXL
2002-09-27 12:04
2002.10.10
Нехватка памяти после закрытия проги


1-31838
AlexJ
2002-09-28 01:47
2002.10.10
сортировка в StringGridе


14-31977
VID
2002-09-14 12:18
2002.10.10
Ищу славную статью


14-32006
qwerty123x
2002-09-16 12:38
2002.10.10
Сколько стоит заказать сантехника? (я имею в виду услуги киллера)


1-31792
Nitrox
2002-10-01 23:34
2002.10.10
Как скопировать целый каталог с подкаталогами...