c - VS2010 多项目解决方案 - 控制台和表单应用程序

标签 c winforms visual-studio-2010 visual-c++

我有一个 VS2005 解决方案项目,它由两个依赖项目组成。该项目是一个 C 控制台应用程序,它与设备通信并从中获取一些输出。这个项目是一个老项目,不是我写的。我是一名电气电子工程师,主要使用 C 语言进行项目。我对 C++ 和 C# 不太了解。一段时间以来,我一直在处理 VS2010 和 C++ 表单应用程序。我掌握了基础知识,但有一些问题。我想为这个控制台项目添加 gui。我为此目的设计了一个表单应用程序。我有按钮在控制台应用程序中启动该过程,并在 RichTextbox 中用于输出。

我必须通过单击按钮从 winform 应用程序调用控制台项目内的函数。我想在循环中调用该函数以连续读取。

我尝试调用“console.exe”文件并在我的 winform 项目中运行它,并将输出重定向到 richtextbox,但对于我的项目来说太慢了。我必须从我的设备上连续快速阅读。

执行此操作的最佳方法是什么?我想将我的 C 控制台应用程序转换为 Windows 窗体应用程序。

谢谢。

最佳答案

您不能直接从另一个 EXE 调用 EXE 内部的函数。

这里有多种选择,具体取决于您愿意做多少工作以及旧项目的长期目标是什么。

  1. 只需将相关代码从控制台项目复制到表单项目即可;如果您的控制台项目即将过时并且您不再计划支持它,则此方法效果最佳。

  2. 将相关代码从控制台项目移至库 (DLL) 项目,并从控制台和表单应用程序引用它;如果您的控制台项目中的代码相对独立(例如,您没有很多全局变量等),则此方法有效。

  3. 向控制台项目添加某种 IPC 机制(监听 TCP 套接字或命名管道等),您可以从表单项目连接到该机制并直接获取数据;这已经非常接近您最初的目标“从一个 EXE 中调用另一个 EXE 中的函数”,但工作量明显增加。

关于c - VS2010 多项目解决方案 - 控制台和表单应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9669435/

相关文章:

c - 在C语言中,如果没有int64数据类型,如何将64位除以64位

c# - 如何使用自定义颜色为 MaskedTextBox 绘制边框?

c# - 激活隐藏进程的窗口

visual-studio-2010 - 您如何/如何将 VS2010 连接到 Codeplex 的 TFS?

c++ - VS C++ - 错误 LNK2001 : unresolved external symbol

C 调用 semget 返回错误 "semget: No such file or directory"

c - 数组大小可变的结构

c# - 从数据库中删除选定的数据表行

asp.net - 让 Visual Studio 2010 Profiler 与 ASP.Net 一起工作?

与 Windows 相比,Linux 上的代码速度较慢