【发布时间】:2018-03-17 16:24:40
【问题描述】:
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 开发的新手,感觉自己做错了什么。 我是不是走错了路?
【问题讨论】:
-
如果你有 C 程序的源代码,要么用它创建一个 DLL。为其编写一个 COM 接口,或将其嵌入到 C++/CLI 代码中并直接将其用作 .NET 程序集。但是你的问题是什么?只有一个可执行文件?直接使用代码没有单独的进程?
-
我希望只有一个可执行文件而不需要两个单独的进程。 C 程序作为可执行文件运行,COM 接口能够查询它的数据并发送命令,但前提是可执行文件已经在运行。我可以将 C 应用程序转换为 DLL,然后从我的 C# 程序中启动它吗? c程序实际上是苹果开源的。 opensource.apple.com/source/mDNSResponder/…