#include "dll.h" #include <windows.h> TPluginInfo PluginInfo; TPluginLink* PluginLink; THandle OnModulesLoadedHandle; TPluginInfo* AQQPluginInfo (int AQQVersion) { PluginInfo.cbSize = sizeof (TPluginInfo); PluginInfo.ShortName = L"Notyfikator"; PluginInfo.Version = PLUGIN_MAKE_VERSION (1, 0, 0, 0); PluginInfo.Description = L"Moja pierwsza wtyczka"; PluginInfo.Author = L"Adam Demidiuk"; PluginInfo.AuthorMail = L"ademidiuk@wp.pl"; PluginInfo.Copyright = L"Prawa autorskie"; PluginInfo.Homepage = L" "; PluginInfo.Flag = 0; PluginInfo.ReplaceDefaultModule = 0; return &PluginInfo; } int OnModulesLoaded (int wParam, int lParam) { MessageBox (0, "OnModulesLoaded", "Hello", 0); return 0; } int Load (TPluginLink* Link) { PluginLink = Link; OnModulesLoadedHandle = PluginLink->HookEvent (AQQ_SYSTEM_MODULESLOADED, OnModulesLoaded); return 0; } int Unload () { PluginLink->UnhookEvent (OnModulesLoadedHandle); return 0; } int Settings () { MessageBox (0, "Ustawienia wtyczki", "Hello", 0); return 0; } BOOL APIENTRY DllMain (HINSTANCE hInst /* Library instance handle. */ , DWORD reason /* Reason this function is being called. */ , LPVOID reserved /* Not used. */ ) { switch (reason) { case DLL_PROCESS_ATTACH: break; case DLL_PROCESS_DETACH: break; case DLL_THREAD_ATTACH: break; case DLL_THREAD_DETACH: break; } /* Returns TRUE on success, FALSE on failure */ return TRUE; }
W dll.h znajduje się zawartość pliku aqq.h pobrana z tej strony oraz następujęcy fragment kodu:
ifndef _DLL_H_ #define _DLL_H_ #if BUILDING_DLL # define DLLIMPORT __declspec (dllexport) #else /* Not BUILDING_DLL */ # define DLLIMPORT __declspec (dllimport) #endif /* Not BUILDING_DLL */ class DLLIMPORT DllClass { public: DllClass(); virtual ~DllClass(void); private: }; extern "C"{ int DLLIMPORT Load (TPluginLink* Link); int DLLIMPORT Unload (); int DLLIMPORT OnModulesLoaded (int wParam, int lParam); int DLLIMPORT Settings (); } #endif /* _DLL_H_ */
Wtyczka miała po uruchomieniu AQQ wyświetlać messagebox'a z komunikatem "hello"
Temat nieaktualny. Zmieniłem środowisko i wszystko działa jak należy.
Użytkownik AdamD edytował ten post 2008.10.09, 15:42