OpenPassDLL.h
Код | // Macro for DLL exports in Win32, replaces Win16 __export // (Макрос для экспорта DLL в Win32 вместо 16-битной версии) #define DllExport extern "С" __declspec(dllexport)
// Prototype // (Прототип) DllExport void RunStopHook(bool State, HINSTANCE hInstance);
|
Код | // OpenPassDLL.cpp : Defines the entry point for the DLL application // OpenPassDLL.cpp : Определяет точку входа для DLL-приложение
#include <windows.h> //#include "stdafx.h" #include "OpenPassDLL.h"
HHOOK SysHook; HWND Wnd; HINSTANCE hInst;
BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { hInst=(HINSTANCE)hModule; return TRUE; }
LRESULT CALLBACK SysMsgProc(
int code, // hook code (код ловушки) WPARAM wParam, // removal flag (флаг) LPARAM lParam // address of structure with message // (адрес структуры с сообщением) ) { //Передать сообщение другим ловушкам в системе CallNextHookEx(SysHook, code, wParam, lParam);
//Проверяю сообщение if (code == HC_ACTION) { //Получаю идентификатор окна сгенерировавшего сообщение Wnd=((tagMSG*)lParam)->hwnd;
//Проверяю тип сообщения. //Если была нажата левая кнопка мыши if (((tagMSG*)lParam)->message == WM_RBUTTONDOWN) { SendMessage(Wnd, EM_SETPASSWORDCHAR, 0, 0); InvalidateRect(Wnd, 0, true); } }
return 0; }
///////////////////////////////////////////////////////////////////
DllExport void RunStopHook(bool State, HINSTANCE hInstance) { if (true) SysHook = SetWindowsHookEx(WH_GETMESSAGE, &SysMsgProc, hInst, 0); else UnhookWindowsHookEx(SysHook); }
|
Хочу создать длл, пример взял из книжки, рробовал на VS2005 и Dev++ везде жалуеться на строку
Код | #define DllExport extern "С" __declspec(dllexport)
|
и именно на
пробывал различные монипуляци, но либо жалуеться на етуже сторчку, а если без нее то Build error... почему так ? че такая техника уже неработает ? встречал на форуме много таких тем но невкоторой не нашел решение своей проблемы... (( |