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

Вниз

Помогите с 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.59 MB
Время: 0.036 c
6-31926
Dimich1978
2002-08-12 09:21
2002.10.10
Вопрос про нахождение всех компьютеров в сети.


3-31595
Brestmarket.com
2002-09-18 16:37
2002.10.10
Как определить версию ADO на компьютере клиента?


3-31667
Sirus
2002-09-20 14:52
2002.10.10
Как в TQRExpr получить разницу дат???


1-31887
Граф
2002-09-30 06:03
2002.10.10
как вызвать стандартное контекстное меню для файла


1-31817
neodiX
2002-09-27 17:08
2002.10.10
Как узнать название всех функций в длл ке?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский