gpt4 book ai didi

C# DLLImport 'Complex' 数组返回和参数

转载 作者:行者123 更新时间:2023-11-28 03:52:16 25 4
gpt4 key购买 nike

我只是在一个名为“fft.dll”的 native C++ DLL 和一个 C# 控制台应用程序之间编写一个小型测试集成。

fft.dll 包含一个名为 Fourier 的类其中包含一个静态方法:

#include <complex>
using namespace std;
class Fourier
{
public:
static complex<double>* fft(complex<double>*);
};

静态方法fft(...)简单地计算 complex<double> 的 FFT数组,并将计算的 FFT 作为 complex<double> 返回数组。

我有两个问题:

  1. 该函数接受 complex<double> 的数组s,但据我所知,.Net 中不存在这样的数据结构。我如何/应该如何格式化我的数据以传递到 fft(...)功能?
  2. 由于静态成员在一个类中,因此在我的 .Net 控制台应用程序中使用 [DllImport("fft.dll")] 时应该使用什么语法? ?

谢谢

编辑:追问:here

最佳答案

P/Invoke不支持调用静态类函数,也不支持和理解C++模板。

正如 VinayC 所建议的,在您的 C++ dll 中编写另一个包装器方法,该方法是全局的,它将数据从简单的 double 组编码到您的 C++ 静态函数正在使用的模板化数组或从中编码。

关于C# DLLImport 'Complex' 数组返回和参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5062457/

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