webForumDet fria alternativet

Miranda IM-plugin

3 svar · 311 visningar · startad av Gein

GeinMedlem sedan sep. 20004 849 inlägg
#1

Någon här som har erfarenhet av att skriva plugin till Miranda?

Jag nämligen problem att ladda in de DLL:er jag skriver, de syns nämligen inte i listan för plugin i Miranda. Miranda verkar inte hitta mitt plugin eller så tycker den kanske att det inte är ett plugin och ignorerar den.

Har provat med ett exempel från plugin-mappen från CVS för ett tag sedan och till slut när jag skulle ladda in dll:en så hittades den inte. Jag trodde det var ett tillfälligt problem och att det var ju det specifika plugin:et som spökade men nu häromdagen skulle jag ge mej på ett redan färdigt plugin för att ändra en aning i det. Det gäller MegaHal. Har laddat ner källkoden och efter lite pill fick jag det att kompilera i Dev-C++ som är det program jag använder för att skriva i. Fick fram en DLL, lade den i plugin-mappen men Miranda vägrar lista plugin:en. Orginal-dll:en går bra att ladda in (den som är förkompilerad av den person som från början gjorde denna plugin) men min nya dll går inte. Även fast jag inte gjort någon funktionell förändring.

Om det är till någon hjälp så finns det en zip med alla filer som jag arbetar med här: http://www.knivby.nu/~gein/miranda-megahal/

Notera: MegaHal.dll är den gamla dll:en som fungerar, megahaldll.dll är den nya dll:en som inte fungerar.

Gissar på att det blir svårt att få napp här men förhoppningsvis någon kanske har legt med ett plugin till miranda någon gång? Har provat på Mirandas development-forum men inte fått något svar.

UmbraMedlem sedan feb. 200478 inlägg
#2

Jag har ingen större erfarenhet (närmare bestämt ingen alls) av pluginutveckling för Miranda.

Men om jag kollar på de två dll-filerna du nämner så exporterar MegaHAL.dll:
Load
MirandaPluginInfo
Unload

Medan filen megahaldll.dll exporterar:
_Z17MirandaPluginInfom
_Z4LoadP10PLUGINLINK
_Z6Unloadv

Skulle gissa att MirandaPluginInfo är den som används av Miranda för att visa upp information om pluginet, vilket borde vara anledningen att din inte fungerar.

Jag har dock ingen aning om varför det blir så i filen du kompilerar.

Sang-draxMedlem sedan juli 2002570 inlägg
#3

Umbra skrev:

Jag har dock ingen aning om varför det blir så i filen du kompilerar.

Det har jag.

Din DLL har C++-namn isället för C-namn. För att få C-namn i C++ omgärdar man funktionerna med

extern "C" 
{
  //funktioner som skall exporteras
}
GeinMedlem sedan sep. 20004 849 inlägg
#4

Jag har redan fått hjälp på annat håll och glömde bort att skriva det här. Det är precis som ni säger!

Genererad på 388 ms · cache AV · v20260730165559-full.f96bc7eb