【问题标题】:How to mix c and c++ form application in the same project?如何在同一个项目中混合使用 c 和 c++ 表单应用程序?
【发布时间】:2014-06-22 13:16:19
【问题描述】:

我想要一个 C 程序与 C++ 表单应用程序在同一个项目中一起使用的程序。

例如:

  1. 当我单击按钮时,将输入的文本发送到 C 程序。在 C++ 表单应用程序中将文本输入到文本框内。

  2. C 程序会通过文件操作将文本保存到计算机。

简单的例子:

textBox1="hello world"
button=clicked
string^ message = textBox->Text;
writerFunction(message);


void writerFunction(char m[50])
{
  FILE *fp;
  fp = fopen("text.txt","a");
  fprintf(fp,"%s",m);
  fclose(fp);
}

【问题讨论】:

  • 您可以在 C++ 程序中使用 C 函数。无需编写两个程序。
  • 在c++ Windows窗体应用程序中??
  • C++ 向后兼容 C
  • 例如:我不能在c++表单应用程序中使用“FILE”
  • 貌似 XY 问题:meta.stackexchange.com/questions/66377/what-is-the-xy-problem 问如何在 C++/CLI 程序中使用 FILE*,而不是奇怪的两个项目的想法。或者更好的是,使用 .NET IO 命名空间类而不是 FILE*。甚至更好 - 转到 C#。

标签: c winforms visual-c++


【解决方案1】:

看起来您正在使用 C++ .NET(托管 c++) 我从指针运算符猜测这个。在标准 C++ 中 你会使用'*'而不是'^'。 如果我在那里错了,请纠正我。

两个选项。

但我建议您使用 c++ .NET 方法将字符串保存在文件中。谷歌会为你找到很多例子。 一个开始:

http://msdn.microsoft.com/en-us/library/19czdak8.aspx

  • 如果您想使用旧式 c++,您可以混合使用 c 和 c++,没有任何问题。您需要将库导入到您的项目中。 图书馆:

C - 此处为 stdio.h 示例 (http://en.m.wikipedia.org/wiki/C_file_input/output)

C++ -ofstream:写入文件的流类

-ifstream:从文件中读取的流类

-fstream:流类以读取和写入文件。

更多细节在这里:http://www.cplusplus.com/doc/tutorial/files/

Windows API - 您可以通过导入标头使用win32 API Windows.h

这里有几个例子 (http://www.daniweb.com/software-development/c/threads/31282/windows-api-functions-to-read-and-write-files-in-c)

祝你好运。如果您需要更多信息,请告诉我。

【讨论】:

    【解决方案2】:

    最简单的方法是将您的 C 代码嵌入到 C++ 中。它应该可以工作,除非任何平台特定的东西阻碍了你。

    如果您确实需要两个(或更多)程序,并且它们应该在操作系统中作为两个不同的进程运行,那么您应该使用适当的进程间通信技术。我对.Net 的东西一无所知。但是,您也可以使用管道、共享内存、内存映射文件甚至套接字。

    或者,您可以创建一个基于 C 的动态库并在您的 C++ 表单应用程序中调用该函数。

    【讨论】:

    • 是的,你说得对,我明白我会尝试创建一个动态函数。
    猜你喜欢
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    • 2018-07-05
    • 2014-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多