从 C 程序到 C# 的数据传输

Posted

技术标签:

【中文标题】从 C 程序到 C# 的数据传输【英文标题】:Data Transfer from C program to C# 【发布时间】:2011-01-03 20:12:36 【问题描述】:

我用 C 语言编写了一个触摸板程序,提供触摸板的 x,y 信息。现在,我想将 X,Y 值传输到 C# 程序。我尝试将信息写入文件并使用 C# 读取。但是,由于 C 程序阻止了文本文件,我收到以下错误:

该进程无法访问文件“C:\simpletpinfo\data.txt”,因为它正被另一个进程使用。

我对套接字编程了解不多,也无法运行网络中的套接字编程示例。 (我使用的是 Visual Studio 2008,可能不支持 sys/socket.h 和其他文件)。请在这方面帮助我。

【问题讨论】:

sys/socket.h 是一个 POSIX API,而不是真正的 Windows。 Windows 有自己的套接字 API (Winsock) 版本,它与原始版本非常接近。快速搜索该术语可能会帮助您更轻松地从 C 程序中获取数据。 【参考方案1】:

我认为您正在寻找的是进程间通信,IPC。有很多方法,this 页面描述了 Windows 上的所有不同方法以及何时使用哪种方法。

我认为你应该考虑使用Data Copy。

【讨论】:

感谢您的回复。是否可以在 C 中连续编写一个文本文件并同时使用 C# 从该文件中读取值。 也许这有帮助? msdn.microsoft.com/en-us/library/kztecsys%28VS.80%29.aspx 但是你为什么不想使用数据复制呢?顺便说一句:可能可以直接从您的 C# 程序中读取您的 x,y 信息。几乎所有在 C 中可能的东西在 C# 中都可能在 AFAIK 中成为可能。 除非您想保留从一个程序发送到另一个程序的每一位,否则没有充分的理由将文件用于 IPC,更不用说文本格式的文件了。真的,阅读 Polybos 链接到的页面。 我尝试使用数据复制并使用以下代码。但是在 C# 窗口中,我得到了一些垃圾值。不确定在哪里修复:从以下链接获取代码:forums.devshed.com/c-programming-42/… 那么你在 C# 窗口中得到了什么,你发送了什么?我无法访问 Windows 机器,所以很遗憾我无法自己测试它:(

以上是关于从 C 程序到 C# 的数据传输的主要内容,如果未能解决你的问题,请参考以下文章

将异步数据从网页传递到我的窗体 C# .NET 应用程序

如何将数据从非托管应用程序传递到 C# COM DLL

如何从 C# 访问 C++/CLI 中的类?

从用 C# 编写的程序中获取数据到 Java 程序中

使用 C# 拉入 Access 数据库条目

从 c# windows 应用程序中的按钮单击将值返回到网格