c# - 使用内存中的 SQLite 数据库在 C++ 和 C# 之间共享数据?

标签 c# c++ sqlite in-memory-database

我在一个项目中工作,该项目具有多个 C++ 和几个 C# 组件。我目前正在开发一个新的 C# 组件,它需要与 C++ 组件共享数据(将来可能会有更多组件访问它)。所有组件都在同一个进程中运行。我目前的想法是使用内存数据库,但我不确定是否可行。

SQLite 很流行,可用于 C++ 和 C# 项目,并且它具有内存中功能。问题是,如果可以从两个组件访问同一个数据库,例如,我可以在我的 C# 项目中使用用 C++ 创建的数据库(指针)的句柄吗?

最佳答案

是的,那是可能的。当然,您需要共享一些数据结构和句柄(如您所说)。这样 SQLite 就无法检测到托管代码和 native 代码之间的任何差异。因此,行为上不会有任何差异。

如果您只使用 PInvoke 或 C++/CLI 来交换数据结构,也许会更容易。仅仅为了传递进程中的数据而启动整个 SQL 数据库似乎很浪费。

关于c# - 使用内存中的 SQLite 数据库在 C++ 和 C# 之间共享数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15069276/

相关文章:

c# - Asp Net Core授权

c# - 如何在 Visual Studio 中重命名 C# 类型?

c++ - 我如何在 Windows 上的 C++ 中根据文件的修改时间读取目录中的文件

c++ - 为什么 C++ 的 void 类型只是三心二意的单元类型?

C++:为什么我会出现段错误?

java - 为什么我收到死代码警告?

c# - 如何检查用户是否为我的应用评分

c# - IDispose 对象是否可以没有可用的 Dispose 方法

Python的sqlite3的executemany不接受元组列表

sql - 使用 SQL 查询对计数进行排名