Создание простой динамически подключаемой библиотеки (DLL)
Пример ниже - исходный код, необходимый для создания простой DLL, Myputs.dll. Она определяет простую печатающую строку функцию, называемую myPuts. DLL Myputs не определяет функцию точки входа, потому что она связана с С-библиотекой периода выполнения программы и не имеет каких-либо выполняемых своих собственных функции инициализации или очистки.
Чтобы создать DLL, следуйте инструкциям в документации, включенной в ваши инструментальные средства разработки.
Пример в котором используется myPuts, смотри в статьях Использование динамического связывания выполняемого при загрузке или Использование динамического связывания периода выполнения.
// Функция myPuts записывает строку с символом конца ('0') в // стандартное устройство вывода данных. // Для механизма экспорта здесь используется метод // __declspec(export), поддерживаемый Microsoft Visual Studio, // однако и любым другим методом экспорта, поддерживаемым // вашим разработанным окружением он может быть заменен. #include <windows.h> #define EOF (-1) #ifdef __cplusplus // Если используется код C++, extern "C" { // мы должны экспортировать C-интерфейс #endif __declspec(dllexport) int myPuts(LPTSTR lpszMsg) { DWORD cchWritten; HANDLE hStdout; BOOL fRet; // Получим дескриптор стандартного устройства вывода. hStdout = GetStdHandle(STD_OUTPUT_HANDLE); if (INVALID_HANDLE_VALUE == hStdout) return EOF; // Запишем строку с нулем в конце для стандартного // устройства вывода данных. while (*lpszMsg != '\0') { fRet = WriteFile(hStdout, lpszMsg, 1, &cchWritten, NULL); if( (FALSE == fRet) || (1 != cchWritten) ) return EOF; lpszMsg++; } return 1; } #ifdef __cplusplus } #endif |