Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с Dll 
V
    Опции темы
denis2105
  Дата 23.6.2008, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 3.12.2006

Репутация: нет
Всего: нет



Всем привет!
Не получается вызвать функцию из dll. GetProcAddress возвращает NULL.
DLL {Dll__.dll}
Код

__declspec(dllexport) LRESULT CALLBACK MousedProc(int nCode, WPARAM wParam, LPARAM lParam);
{
    if (nCode==HC_ACTION || wParam==WM_RBUTTONDOWN)
        AfxMessageBox(_T("Ура"));
    CallNextHookEx(/*hhSysHook*/NULL,nCode,wParam,lParam);
    return 0;
}


FORM
Код

    typedef LRESULT (*DLLFUNC)(int, WPARAM, LPARAM);            //тип экспорт.функции    
    DLLFUNC dllfunc;                                                         //указатель на экспорт.функцию
    HMODULE mydll=LoadLibrary(_T("Dll__.dll"));
    if(mydll==NULL)    
        AfxMessageBox(_T("error LoadLibrary"));
    dllfunc=(DLLFUNC)::GetProcAddress(mydll,"MousedProc");
    if (dllfunc==NULL)    
        AfxMessageBox(_T("error GetProcAddress"));


Не могу понять, в чем проблема?
PM MAIL   Вверх
bsa
Дата 23.6.2008, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



denis2105, ты разделом ошибся
PM   Вверх
xvr
Дата 24.6.2008, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(denis2105 @ 23.6.2008,  12:42)
Всем привет!
Не получается вызвать функцию из dll. GetProcAddress возвращает NULL.
DLL {Dll__.dll}
Код

__declspec(dllexport) LRESULT CALLBACK MousedProc(int nCode, WPARAM wParam, LPARAM lParam);
{
    if (nCode==HC_ACTION || wParam==WM_RBUTTONDOWN)
        AfxMessageBox(_T("Ура"));
    CallNextHookEx(/*hhSysHook*/NULL,nCode,wParam,lParam);
    return 0;
}


FORM
Код

    typedef LRESULT (*DLLFUNC)(int, WPARAM, LPARAM);            //тип экспорт.функции    
    DLLFUNC dllfunc;                                                         //указатель на экспорт.функцию
    HMODULE mydll=LoadLibrary(_T("Dll__.dll"));
    if(mydll==NULL)    
        AfxMessageBox(_T("error LoadLibrary"));
    dllfunc=(DLLFUNC)::GetProcAddress(mydll,"MousedProc");
    if (dllfunc==NULL)    
        AfxMessageBox(_T("error GetProcAddress"));


Не могу понять, в чем проблема?

Твоя функция будет называться не MousedProc а как нибудь так - _MousedProc@12 Посмотри в разделе экспорта dll ее реальное название
PM MAIL   Вверх
EnergoHokum
Дата 24.6.2008, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 600
Регистрация: 10.11.2006
Где: Россия, Ставропол ь

Репутация: нет
Всего: 6



В дл-ке функцию обзови так:

Код

extern "C" __declspec(dllexport) LRESULT CALLBACK MousedProc(int nCode, WPARAM wParam, LPARAM lParam)
{

}


тогда она будет видеться именно так, как записана. И ещё, у тебя после имени и параметров функции в дл-ке стоит точка с запятой -- убери её оттуда.
PM MAIL ICQ   Вверх
denis2105
Дата 24.6.2008, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 3.12.2006

Репутация: нет
Всего: нет



Ура!!! 
Заработала с  extern "C" и  “_MousedProc@12”.
Спасибо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0492 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.