Skocz do zawartości


Zdjęcie

AQQ nie widzi wtyczki


  • Zaloguj się, aby dodać odpowiedź
Brak odpowiedzi do tego tematu

#1 AdamD

AdamD

    Początkujący

  • Użytkownik
  • 28 postów

Napisano 2008.10.02, 21:17

Chciałem napisać wtyczkę do AQQ w c++. Użyłem Dev-c++. Jako, że po raz pierwszy tworzyłem dll-kę skorzystałem z tego tutoriala. Wszystko poszło dobrze po kompilacji powstała dll-ka którą skopiowałem do katalogu z pozostałymi wtyczkami, jednak AQQ nie widzi mojej wtyczki. Szukałem błędu ale nie mogę go wyłapać. Będę wdzięczny za pomoc. Oto zawartość pliku *.cpp:
#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

AQQ:zawsze najnowsza stabilna wersja. Wtyczki: gg, sms, kontakty zwykłe. Kompozycja Black Magic.
Windows 7




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych