C# 如何将浮点数从C应用程序发送到C++;应用
我有两份申请: 1.:用VisualStudio 2013编写的C#GUI应用程序C# 如何将浮点数从C应用程序发送到C++;应用,c#,c++,ipc,interprocess,C#,C++,Ipc,Interprocess,我有两份申请: 1.:用VisualStudio 2013编写的C#GUI应用程序 2:VisualStudio 2013中编写的C++ GUI应用程序。p> 我想将浮点数从应用程序1发送到应用程序2 (换句话说,如果C++应用程序计算浮点数(例如:12.32),那么我希望在C++应用程序编写的标准输出上看到这个数)。 最简单的方法是什么?是否有任何Windows API或公共内存地址之类的东西来完成此任务?Hmmm。。。有办法做到这一点(据我所知): 使用插座 使用 使用读写文件 使用P\
2:VisualStudio 2013中编写的C++ GUI应用程序。p> 我想将浮点数从应用程序1发送到应用程序2
(换句话说,如果C++应用程序计算浮点数(例如:12.32),那么我希望在C++应用程序编写的标准输出上看到这个数)。
最简单的方法是什么?是否有任何Windows API或公共内存地址之类的东西来完成此任务?Hmmm。。。有办法做到这一点(据我所知):
- 使用插座
- 使用
- 使用读写文件
- 使用P\Invoke调用
- 使用
如果我想在GUI应用程序上执行此操作,我将选择p\Invoke,但如果我想在后台执行某些操作,我将选择IPC通道或共享内存(IPC通道更好)Hmmm。。。有办法做到这一点(据我所知):
- 使用插座
- 使用
- 使用读写文件
- 使用P\Invoke调用
- 使用
如果我想在GUI应用程序上执行此操作,我将选择p\Invoke,但如果我想在后台执行某些操作,我将选择IPC通道或共享内存(IPC通道更好)您可以使用任何类型的进程间通信机制来执行此操作。最简单的可能是匿名管道。你将发现如何在C++和C语言中使用匿名管道。< /P> < P>可以使用任何进程间通信机制来实现这一点。最简单的可能是匿名管道。您将发现如何在C++中和C语言中使用匿名管道。 < P>我假定两个应用程序同时运行。我会使用套接字进行本地传输,或者假设C++应用程序只捕获来自C++应用程序的数据,这样就可以将它作为数据对象返回并传递给产卵C++应用程序作为参数。我会使用套接字进行本地传输,或者我假设C++应用程序只捕获来自C++应用程序的数据,这样就可以将它作为数据对象返回并传递给产卵C++应用程序作为参数。 < P>最简单的方法之一是将值转储到C中的文件中,然后用C++来拾取它们。p> 注意:此方法不是最可靠/最快的,可能不适合企业产品,但对于快速的一次性需求,此方法应该可以很好地工作 将输出保存到文件
using System.IO;
class ConsoleApplication {
static void Main()
{
using (BinaryWriter writer = new BinaryWriter(File.Open("temp.dat", FileMode.Create)))
{
writer.Write(1.2345F);
}
} }
然后用C++来读取它…p>
#包括
内部主(空)
{
FILE*r_FILE=NULL;
浮动fd_值=0;
r_file=fopen(“临时数据”、“rb”);
if(NULL==r\u文件)
返回0;
fread(&fd_值,1,sizeof(fd_值),r_文件);
fclose(r_文件);
printf(“fd_值=%f\n”,fd_值);
返回0;
}
<>代码> 最简单的方法之一是将值转储到C中的文件中,然后用C++来拾取它们。p>
注意:此方法不是最可靠/最快的,可能不适合企业产品,但对于快速的一次性需求,此方法应该可以很好地工作
将输出保存到文件
using System.IO;
class ConsoleApplication {
static void Main()
{
using (BinaryWriter writer = new BinaryWriter(File.Open("temp.dat", FileMode.Create)))
{
writer.Write(1.2345F);
}
} }
然后用C++来读取它…p>
#包括
内部主(空)
{
FILE*r_FILE=NULL;
浮动fd_值=0;
r_file=fopen(“临时数据”、“rb”);
if(NULL==r\u文件)
返回0;
fread(&fd_值,1,sizeof(fd_值),r_文件);
fclose(r_文件);
printf(“fd_值=%f\n”,fd_值);
返回0;
}