C# · 12月 23, 2021

发送消息在C#

我正在创建一个使用连接到多个不同DLL的主项目的应用程序.从一个DLL窗口,我需要能够打开另一个窗口,但DLL不能引用.

有人建议我在第一个DLL中使用sendmessage函数,并在主程序中有一个侦听器,将该消息指向适当的DLL以打开它的窗口.

不过我根本不熟悉sendmessage函数,而且我正在从线上查询的信息中拼凑出很多差异.

如果有人可以告诉我正确的方式(如果有的话)使用sendmessage功能,也许听众可以捕获那个令人惊奇的消息.这是我到目前为止的一些代码,我不知道我是否朝着正确的方向前进.

[DllImport(“user32.dll”)] public static extern int FindWindow(string lpClassName,String lpWindowName); [DllImport(“user32.dll”)] public static extern int SendMessage(IntPtr hWnd,int wMsg,IntPtr wParam,IntPtr lParam); public void button1_Click(object sender,EventArgs e) { int WindowToFind = FindWindow(null,”Form1″); }解决方法 您不需要发送消息.

将一个窗体添加一个event,另一个添加一个事件处理程序.然后,您可以使用引用其他两个项目的第三个项目将事件处理程序附加到事件.这两个DLL不需要彼此引用,以使其工作.