用于实现 C++ 的 C++/CLI 解决方法 界面

发布于 2024-08-01 19:50:49 字数 363 浏览 3 评论 0原文

Micropather 要求用户实现其抽象类“Graph”才能使用该库。 有什么好方法可以从 C++/CLI 执行此操作,以便我可以在 .NET 中使用 Micropather?

实现的方法只有两种:

virtual float LeastCostEstimate( void* stateStart, void* stateEnd ) = 0;
virtual void AdjacentCost( void* state, std::vector< StateCost > *adjacent ) = 0;

到目前为止,我一直在用 gcroot 和 delegates 进行策划,但还没有任何扎实的东西。

Micropather requires users implement their abstract class "Graph" in order to use the library. What's a good way to do this from C++/CLI so I can use Micropather in .NET?

There are only two methods to implement:

virtual float LeastCostEstimate( void* stateStart, void* stateEnd ) = 0;
virtual void AdjacentCost( void* state, std::vector< StateCost > *adjacent ) = 0;

So far I have been scheming with gcroot and delegates, but I don't have anything solid yet.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

拔了角的鹿 2024-08-08 19:50:49

只需编写一个继承 Graph 的普通 C++ 类,并使用 gcroot 模板来引用该类中的 CLR 对象。

class MyGraph : public Graph
{
    gcroot<SomethingImportant ^> _stuff;

    // implement abstract memfuncs to call onto _stuff
};

Just write an ordinary C++ class that inherits Graph, and use the gcroot template to refer to CLR objects from within that class.

class MyGraph : public Graph
{
    gcroot<SomethingImportant ^> _stuff;

    // implement abstract memfuncs to call onto _stuff
};
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文