gpt4 book ai didi

c# - c++ 结构指针转换为数组互操作 c#

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:43:45 24 4
gpt4 key购买 nike

前言:

我有一个遗留的 C++ 应用程序,它有一个 COM 组件。其中一种方法去

HRESULT foo(int* returnInteger)

虽然最初的实现被设计为返回单个 int,但程序的发展使得实现它的类现在返回一个整数列表而不是一个整数。

returnInteger = memalloc((number of integers)*size of integer)

并且调用者也通过

读取返回指针
number of integers returned = sizeof(returnInteger)/size of integer

我知道这个设计不是纯 COM,不理想,在设计时也没有考虑到互操作性。但是,我必须用我所拥有的来凑合。

当前问题:

设计一个使用该组件的 C# 应用程序。我知道我将不得不慢慢逐步淘汰它,但现在,我必须继续这样做

c# 将方法显示为

foo(ref int returnInteger)

C# 应用程序将只读取一个 int(即使 C++ 客户端正在发送一个整数数组)。如何让 C# 应用程序的行为与 C++ 客户端相同并读取整数数组?

非常感谢对此的任何帮助

最佳答案

为此找到了解决方法:使用托管 C++ 作为中间层。

虽然不是最理想的解决方案,但由于我无法修改遗留代码,这是我最喜欢的路线。

非常感谢大家的帮助

关于c# - c++ 结构指针转换为数组互操作 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43695995/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com