adding a event handler in MFC application for c# event

M

Mayur Gadhave

Hello all,
Im trying to call my .net c# library functions from my unmanaged
vc++(dialog based MFC)
application .
From that application i want add the event handler for the event generated
in c# dll
so how to do that
Here is my code..


#using <mscorlib.dll>

#using "ircConnect.dll" //This is the c# dll reference


__gc class GlobalObjects

{

#pragma push_macro("new")

#undef new

public: static ircConnect::IrcConnection *iIRC =new
ircConnect::IrcConnection();


public:

__event ircConnect::IrcConnection::MessageEventHandler* MessageIncome;



#pragma pop_macro("new")

};

void CMyMFCDlg::OnBnClickedOk()

{

#pragma push_macro("new")

#undef new

GlobalObjects* m_proxyChat;

m_proxyChat = new GlobalObjects();

GlobalObjects *MyX = new GlobalObjects();


m_proxyChat->MessageIncome += new
ircConnect::IrcConnection::MessageEventHandler(MyX,GlobalObjects::OnMessageIncome);
//This is the event handler im trying to add

m_proxyChat->iIRC->Connect("testing");

m_proxyChat->iIRC->joinchannel("abhishek","abhishek","#guildae");

#pragma pop_macro("new")

}
 
J

Jochen Kalmbach [MVP]

Hi Mayur!
ircConnect::IrcConnection::MessageEventHandler(MyX,GlobalObjects::OnMessageIncome);
//This is the event handler im trying to add

And what is the problem or error message?
You are already inside the "GlobalObjects" class, or?

So you can just specify:

....MessageEventHandler(MyX, OnMessageIncome);

The following works for me:

__gc class Form1 : Form
{
static void Test()
{
Form1 *f = new Form1();
f->HandleCreated += new System::EventHandler(f, TestHandler);
}
void TestHandler(Object *sender, System::EventArgs *e)
{
}
};

Greetings
Jochen
 
M

Mayur

Hi all,
actually the code is compiling well.but actually my function
OnMessageIncome() is not getting called when
that m_proxyChat->MessageIncome event occurs in my c# dll.
Thanking you.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top