如何在同一个项目中混合c和c ++表单应用程序?

时间:2014-06-22 13:16:20

标签: c winforms visual-c++

伙计们,我很抱歉我的英语不好。

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

例如:

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

  2. C程序会将文本保存到带有文件操作的计算机。

  3. 如此简单的例子:

    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);
    }
    

2 个答案:

答案 0 :(得分:0)

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

两个选项。

但我建议您使用c ++ .NET方法将字符串保存在文件中。 Google会为您找到许多示例。 一开始:

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

  • 如果你想使用旧式c ++,你可以毫无问题地混合使用c和c ++。您需要将libs导入项目。 库:

Ç - 这里的stdio.h示例(http://en.m.wikipedia.org/wiki/C_file_input/output

C ++ -ofstream:要在文件上写入的Stream类

-ifstream:要从文件中读取的Stream类

-fstream:Stream类,用于读取和写入文件。

此处有更多详情: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

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

答案 1 :(得分:0)

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

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

否则,您可以基于C创建动态库并在C ++表单应用程序中调用该函数。