我正在将我的解决方案从 c# 迁移到 c++。我已经创建了几个本机 c++ dll,它们都很好。将本机 dll 连接到 c++ 和 c# 很容易。对于 c#,我使用 P/Invoke 进行方法执行和回调,我只是将指针传递给非托管内存并使用Marshall类delegate
读取它。
现在我有相反的情况 - 我需要创建C#
现在将从另一个C#
项目中使用的项目,但稍后我会将主项目重写为 C++,因此我需要C#
从 C++ 访问项目。它应该只提供几种方法:PlaceOrder(void* pointerToStruct)
CancelOrder(void* pointerToStruct)
和一个回调delegate OrderUpdated(void* pointerToStruct)
我正在寻找提示和示例。如何创建可从本机 C++ 和 C# 使用并提供多种方法 + 一个回调的 C# 项目。
特别是我现在不知道我应该如何处理内存 - 我应该在 c# 中写入非托管内存并在 c++ 中读取它,还是应该在 c# 中写入托管内存并以某种方式读取 c++ 中的托管内存...指向结构的指针我在参数中传递的应该指向非托管内存或托管内存等。