将数据从C进程传递到c++进程
Passing data from a C process to a C++ process
这是我第一次在这里发布问题,我通常在存档中找到答案,但这次我被难住了。
我正在使用使用Windows驱动程序工具包的供应商的一些代码从操纵杆上抓取数据。数据以6个元素的数组形式呈现(这是一个6自由度的鼠标)。
我已经写了需要抓取数据的代码,它是在c++中…它使用了很多标准库来处理向量等等。似乎使用标准库与WDK是一个很大的头痛,我花了几天时间试图去工作,但失败了。我的下一个想法是使用boost::interprocess,但由于同样的原因,这很难与WDK一起使用。
我想知道是否有一种方法可以在C进程和c++进程之间共享内存。我想用C程序将数组写入内存,并从c++程序中读取它。它需要发生得非常快,应该有一种方法来确保我不会在写(互斥?)的中间读它。
欢迎提出任何意见或建议。
编辑我做了一个DLL代替,现在我只有一个DLL,有一个getValues()函数,我可以从我的c++项目调用。我不得不使用"粉刺"这个习语来隐藏c的内容。谢谢你们的帮助!!
也许我错过了什么,但看起来您创建了一个检索操纵杆数据的过程。为了省去一些麻烦,请将该过程替换为注释中建议的C DLL。然后,您的主c++应用程序可以简单地调用DLL中的函数来检索操纵杆数据,而不必担心锁或进程间通信。
当然,如果您确实需要两个进程,则需要在DLL中使用共享内存和进程级锁。共享内存是必需的,因为dll分别加载到每个进程的虚拟空间中;没有任何东西是共享的,因此需要共享内存。
相关文章:
- boost::进程间消息队列引发错误
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 是否可以通过C++扩展强制多个python进程共享同一内存
- IPC使用多个管道和分支进程来运行Python程序
- 异常属于C++中的线程还是进程
- WMI检测进程创建事件-c++
- c++多进程编写一个唯一的文件
- 如何在C++中将函数发送到另一个进程
- 在Qt Creator中,如何在连接到正在运行的进程后查看控制台输出
- 终止 QProcess 不会终止子进程
- 将返回值从 exe 传递到 bat,并将其传递给 C# 中的进程
- COM :是否可以查看是否存在对我的某个 COM 对象的进程外引用?我可以释放它吗?
- Windows 进程间同步类似事件?
- 在挂钩启动新线程时解除挂钩进程
- pclose() 不会给我进程退出代码
- 运行代码时,c++ 会终止进程
- 可以读入进程内存的最大块大小是多少?
- 枚举进程模块在有效句柄上返回无效句柄
- 如何读取特定地址的进程内存?
- 如何从另一个进程解开全局钩子?