Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2012, 02:47   #1
Игорь С++
Пользователь
 
Регистрация: 23.06.2012
Сообщений: 19
По умолчанию Явная загрузка DLL

Господа начал изучать , первая программа и проблема , буду признателен за помощь .
вот код dll
#include "dll.h"
#include <windows.h>

_declspec(dllexport) void Tri(HDC hdc);

BOOL APIENTRY DllMain (HINSTANCE hInst /* Library instance handle. */ ,
DWORD reason /* Reason this function is being called. */ ,
LPVOID reserved /* Not used. */ )
{

return TRUE;
}
void Tri(HDC hdc){
TextOutA(hdc,0,0,"Hello World",strlen("Hello world"));
}
вот код который должен её использовать -
typedef BOOL (WINAPI* PFN) (HDC);
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
PAINTSTRUCT ps;
HDC hdc;
static PFN p=0;
static HINSTANCE hlib=0;
switch (message) /* handle the messages */
{
case WM_CREATE:
hlib=LoadLibrary("Project1");
if(hlib!=0){Beep(500,500);}
p=(PFN)GetProcAddress(hlib,"Tri");
if(p!=0){Beep(500,500);}
break;
case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
p(hdc);
EndPaint(hwnd,&ps);
break;
И получается LoadLibrary проходит успешно , а вот GetProcAddress и изъятие заканчевается не удачей . Почему?
Игорь С++ вне форума Ответить с цитированием
Старый 23.06.2012, 03:00   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

http://programmersforum.ru/showthread.php?t=205601
только что описывалось.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.06.2012, 03:03   #3
Игорь С++
Пользователь
 
Регистрация: 23.06.2012
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
http://programmersforum.ru/showthread.php?t=205601
только что описывалось.
да я уже прочитал спасибо,но как я понял там нужно подключить def файл , а что там писать не пойму , пишу функцию и описание компилятор ругается
Игорь С++ вне форума Ответить с цитированием
Старый 23.06.2012, 03:16   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

http://www.rsdn.ru/forum/cpp.applied/1424029.all.aspx
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[DLL] Загрузка и выгрузка dll в/из чужого процесса Человек_Борща Win Api 4 28.02.2010 17:47
Загрузка dll Колючка* Общие вопросы Delphi 3 12.02.2010 19:45
загрузка .dll blackstersl Общие вопросы Delphi 1 29.04.2009 21:53
Явная загрузка DLL FaTaL Общие вопросы Delphi 17 10.10.2008 08:57
Загрузка DLL Hollander Общие вопросы Delphi 3 21.05.2007 20:19