packetlistener.exe :我有一个主动侦听和接收数据包的c应用程序。
comwrapper.dll :包装非托管c可执行文件的C ++ COM dll
guiapp.exe :一个.NET gui,引用comwrapper.dll并使用它来显示信息和处理事件。
我目前启动应用程序的方式:
我花了最后几个小时试图弄清楚如何将它很好地打包到一个过程中。
我尝试做的是将packetlistener.exe编译为dll,然后将其包含在guiapp项目中。但是,作为guiapp的一部分启动packetlistener,我完全迷失了。
我是Windows开发新手,觉得我做错了。 我是以错误的方式解决这个问题吗?
答案 0 :(得分:0)
您可以使用Process.Start从.net应用程序启动流程:
Process.Start("packetlistener.exe", "-arg1 -arg2");
答案 1 :(得分:0)
所以我最终搞清楚自己想做什么。
我将我的C应用程序编译成DLL并公开了一个可以启动它的函数。
然后我使用PInvoke在一个单独的线程中调用该函数,以便它可以开始收集和发送数据包。
COM DLL似乎神奇地引用了在自己的线程中运行的C程序。
既然我无法PInvoke嵌入式DLL,我必须在临时文件中解压缩,你可以在这里了解它。
How can I extract a file from an embedded resource and save it to disk?
最后,我留下了一个可执行文件。