Shoutbox

self-made Dll Plugin load failure C++ - Printable Version

-Shoutbox (https://shoutbox.menthix.net)
+-- Forum: MsgHelp Archive (/forumdisplay.php?fid=58)
+--- Forum: Messenger Plus! for Live Messenger (/forumdisplay.php?fid=4)
+---- Forum: Scripting (/forumdisplay.php?fid=39)
+----- Forum: Plug-Ins (/forumdisplay.php?fid=28)
+------ Thread: self-made Dll Plugin load failure C++ (/showthread.php?tid=34118)

self-made Dll Plugin load failure C++ by Quintok on 11-05-2004 at 12:14 PM

Hi, I'm new to Dlls so I'm almost 100% sure this is my fault, however I'm unable to see why this Dll does not load into MsgPlus.  I've tried to emulate the MPPluginC sample from MPPlugins (which loaded fine - even after I recompiled it) however for a reason I cannot see it won't load.

I have turned off precompiled headers and it compiles fine.
Thanks.

here's the code.

code:
#include "stdafx.h" // loads <tchar.h> <comdef.h> & <windows.h>
#include "MPPluginHeader.h"

//////////////////////////////////////////////////////////////////////
//                                                                    //
// Purpose: DLL Entry Point                                            //
//                                                                    //
//////////////////////////////////////////////////////////////////////
BOOL APIENTRY DllMain(HANDLE hModule, DWORD nReason, void* pReserved)
{
    return TRUE;
}

//////////////////////////////////////////////////////////////////////
//                                                                    //
// Purpose: Initialization function                                    //
//                                                                    //
//////////////////////////////////////////////////////////////////////
MPPLUGIN_RETURN_BOOL Initialize(/*[in]*/ DWORD nVersion,
                                /*[in]*/ const char* sUserEmail,
                                /*[in]*/ IDispatch* iMessengerObj)
{
    char crap[256]; crap[255] = '\0';
    strcpy( crap, "Email: " );
    strcat( crap, sUserEmail );
    MessageBox(GetActiveWindow(), crap,
        "About Sample in C...", MB_OK);
    return TRUE;
}

//////////////////////////////////////////////////////////////////////
//                                                                    //
// Purpose: Uninitialization function                                //
//                                                                    //
//////////////////////////////////////////////////////////////////////
MPPLUGIN_RETURN_VOID Uninitialize()
{
}

//////////////////////////////////////////////////////////////////////
//                                                                    //
// Purpose: Configuration/Information function                        //
//                                                                    //
//////////////////////////////////////////////////////////////////////
MPPLUGIN_RETURN_VOID Configure()
{
    MessageBox(GetActiveWindow(), "Sample plugin made in language C\nAuthor: Patchou",
        "About Sample in C...", MB_OK);
}

//////////////////////////////////////////////////////////////////////
//                                                                    //
// Purpose: Inform the users about the features of the plugin        //
//                                                                    //
//////////////////////////////////////////////////////////////////////
MPPLUGIN_RETURN_BOOL PublishInfo(/*[out]*/ char *sPluginName,
                                 /*[out]*/ PLUGIN_PUBLISH_LIST* aCommands,
                                 /*[out]*/ PLUGIN_PUBLISH_LIST* aTags)
{
    // Plugin Name
    strcpy(sPluginName, "MsgPlusTest");

    // Commands Help
    aCommands->nCount = 1;
    strcpy(aCommands->sName[0], "Displays the Parameter");
    strcpy(aCommands->sValue[0], "xtest");
    strcpy(aCommands->sHelp[0], "any text");

    // Tags Help
    aTags->nCount = 0;

    return TRUE;
}

//////////////////////////////////////////////////////////////////////
//                                                                    //
// Purpose: Provide new commands in Messenger Plus!                    //
//                                                                    //
//////////////////////////////////////////////////////////////////////
MPPLUGIN_RETURN_BOOL ParseCommand(/*[in]*/  const char* sCommand,
                                  /*[in]*/  const char* sCommandArg,
                                  /*[in]*/  PLUGIN_PARAM* pParam,
                                  /*[out]*/ char* sResult)
{
    if(stricmp(sCommand, "/xtest") == 0)
    {
        char sMessage[256]; sMessage[255] = '0';
        strcpy( sMessage, "Arg: " );
        strcat( sMessage, sCommandArg );

        DisplayToast( sMessage, "Test", "http://www.google.com", 0 );
        strcpy( sResult, "" );
        return TRUE;
    }
    return FALSE;
}

//////////////////////////////////////////////////////////////////////
//                                                                    //
// Purpose: Provide new tags in Messenger Plus!                        //
//                                                                    //
//////////////////////////////////////////////////////////////////////
MPPLUGIN_RETURN_BOOL ParseTag(/*[in]*/  const char* sTag,
                              /*[in]*/  PLUGIN_PARAM* pParam,
                              /*[out]*/ char* sResult)
{
    return FALSE;
}

//////////////////////////////////////////////////////////////////////
//                                                                    //
// Purpose: Allow special actions when a plugin text is received    //
//                                                                    //
//////////////////////////////////////////////////////////////////////
MPPLUGIN_RETURN_BOOL ReceiveNotify(/*[in]*/  const char* sNotifyCode,
                                   /*[in]*/  const char* sText,
                                   /*[in]*/  PLUGIN_PARAM* pParam,
                                   /*[out]*/ char* sTextToSend)
{
    return FALSE;
}

Update:
in the DllMain I placed in a MessageBox, which pops up 3 times but the Initialize method is not executed.
after searching through the differences in setup between the example and what I wrote... I found that the .deb file was required for it to link into msgplus correctly.  knew it was my fault ;)