合并 c 可执行文件、托管 COM dll 和 .Net gui
Merging a c executable, managed COM dll, and .Net gui
packetlistener.exe: 我有一个主动监听和接收数据包的c应用程序。
comwrapper.dll:包装非托管 c 可执行文件的 C++ COM dll
guiapp.exe:引用 comwrapper.dll 并使用它来显示信息和处理事件的 .NET gui。
我目前启动应用程序的方式:
- 使用命令行参数启动 packetlistener.exe。
- 开始guiapp.exe
我花了最后几个小时试图弄清楚如何将它很好地打包到一个过程中。
我尝试做的是将 packetlistener.exe 编译为 dll,然后将其包含在 guiapp 项目中。但是,我完全不知道如何将 packetlistener 作为 guiapp 的一部分启动。
我是 windows 开发的新手,感觉自己做错了什么。
我是不是用错了方法?
您可以使用 Process.Start 从 .net 应用程序启动进程:
Process.Start("packetlistener.exe", "-arg1 -arg2");
所以我最终弄清楚了我想做什么。
我将我的 C 应用程序编译成一个 DLL 并公开了一个可以启动它的函数。
然后我使用 PInvoke 在单独的线程中调用该函数,以便它可以开始收集和发送数据包。
COM DLL 似乎神奇地在它自己的线程中引用了 运行 的 C 程序。
现在,由于我无法 PInvoke 嵌入的 DLL,我不得不将其解压缩到一个临时文件中,您可以在此处了解相关信息。
How can I extract a file from an embedded resource and save it to disk?.
最后我只剩下一个可执行文件。
packetlistener.exe: 我有一个主动监听和接收数据包的c应用程序。
comwrapper.dll:包装非托管 c 可执行文件的 C++ COM dll
guiapp.exe:引用 comwrapper.dll 并使用它来显示信息和处理事件的 .NET gui。
我目前启动应用程序的方式:
- 使用命令行参数启动 packetlistener.exe。
- 开始guiapp.exe
我花了最后几个小时试图弄清楚如何将它很好地打包到一个过程中。
我尝试做的是将 packetlistener.exe 编译为 dll,然后将其包含在 guiapp 项目中。但是,我完全不知道如何将 packetlistener 作为 guiapp 的一部分启动。
我是 windows 开发的新手,感觉自己做错了什么。 我是不是用错了方法?
您可以使用 Process.Start 从 .net 应用程序启动进程:
Process.Start("packetlistener.exe", "-arg1 -arg2");
所以我最终弄清楚了我想做什么。
我将我的 C 应用程序编译成一个 DLL 并公开了一个可以启动它的函数。
然后我使用 PInvoke 在单独的线程中调用该函数,以便它可以开始收集和发送数据包。
COM DLL 似乎神奇地在它自己的线程中引用了 运行 的 C 程序。
现在,由于我无法 PInvoke 嵌入的 DLL,我不得不将其解压缩到一个临时文件中,您可以在此处了解相关信息。
How can I extract a file from an embedded resource and save it to disk?.
最后我只剩下一个可执行文件。