Ответить на сообщение
Вернуться к теме
Вы отвечаете на сообщение:
Автор: cheops (28.01.2012 в 10:51) В этом случае ваша DLL-библиотека должна выглядеть следующим образом
#include <Windows.h> extern "C" __declspec(dllexport) void ShowMessage(LPCTSTR title, LPCTSTR text) { MessageBox( NULL, text, title, MB_OK | MB_ICONEXCLAMATION); }
// Главный заголовочный файл #include <Windows.h> #include <tchar.h> // Главная входная точка Windows-программ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpcmdline, int ncmdshow) { // Дескриптор DLL-библиотеки HMODULE hDll; // Указатель на функцию void (*dllShowMessage) (LPCTSTR, LPCTSTR); // Загружаем динамически подключаемую библиотеку hDll = LoadLibrary(_T("dll.dll")); if(!hDll) { MessageBox( NULL, _T("Динамическая библиотека не загружена"), _T("Ошибка"), MB_OK | MB_ICONEXCLAMATION); return GetLastError(); } // Настраиваем адрес функции dllShowMessage = (void (*)(LPCTSTR, LPCTSTR))GetProcAddress(hDll, "ShowMessage"); if(!dllShowMessage) { MessageBox( NULL, _T("Невозможно получить адрес функции ShowMessage()"), _T("Ошибка"), MB_OK | MB_ICONEXCLAMATION); return GetLastError(); } // Вызываем функцию из библиотеки dllShowMessage(_T("Hello world!"), _T("Hello world!")); // Отключаем библиотеку if(!FreeLibrary(hDll)) { MessageBox( NULL, _T("Ошибка выгрузки библиотеки из памяти"), _T("Ошибка"), MB_OK | MB_ICONEXCLAMATION); return GetLastError(); } // Выход из программы return 0; }
Ваше имя:
Пароль:
Цитировать Используйте тэги для выделения текста: Код: [code][/code] Жирный: [b][/b] Наклонный: [i][/i] URL: [url][/url]
Сообщение:
Прикрепить: