【问题标题】:Fast Fourier Transform library from Exocortex.DSP来自 Exocortex.DSP 的快速傅里叶变换库
【发布时间】:2011-03-28 17:30:36
【问题描述】:

我正在尝试使用 Exocortex.DSP 的 FFT 库。

调用函数是:

Exocortex.DSP.Fourier.FFT(float[], int, Exocortex.DSP.FourierDirection)

我使用这个函数的代码行是:

Fourier.FFT(floatArray, arraycount, FourierDirection.Forward);

我的程序编译成功了,为什么会在这一行中断?

**破窗说:

An unhandled exception of type 'System.MissingMethodException' occurred in Exocortex.DSP.v1.dll
Additional information: Method not found: Log System.Math."*

【问题讨论】:

    标签: c# signal-processing fft


    【解决方案1】:

    当您针对库编译代码但随后针对不同版本运行时,或者如果您仅编译解决方案项目的子集,则会发生此类错误。然后发生的情况是代码尝试调用在运行时使用的程序集中不存在或具有不同签名的方法。

    我要检查的是:

    • 在“构建配置”对话框中,是否勾选/选中了所有框。
    • 您的项目是否正在构建到您认为的目录。
    • 无论您实际上是在运行已构建的代码,还是可能以某种方式运行来自不同目录的旧代码。
    • 您正在使用的库是否被正确地复制到可执行项目的目标目录中(如果不是,它可能会在解决方案中的某处提出不可靠的引用)。

    最后,库本身可能已经针对它使用的不同版本的库进行了编译。您可能需要设置一个小型测试项目,以确保库在一个非常简单的测试用例中正常工作,然后再调查您现有项目无法正常工作的原因。

    【讨论】:

      【解决方案2】:

      我很确定这需要更高版本的 .NET 框架(很可能是 2.0 上的 3.5,因为 4.0 又是一个全新的框架)。

      检查安装要求。或者使用 mono Moma 工具查看缺少哪些引用的方法。

      无需检查构建配置标志(如果没有完成编译,它将不会运行)。但是,如果它有未解决的问题,则不应编译。所以也许你需要“复制本地”引用的 DLL(不太可能你有不同的版本)

      还可以在 GAC 内部查找可以选择的冲突版本,而不是编译期间引用的版本

      【讨论】:

      • 肯定有必要检查构建配置标志。如果您构建项目 A 而不是项目 B,并且项目 B 恰好调用了项目 A 的方法,那么如果该方法更改签名或被删除,则可能会得到完全 OP 的异常。
      • @paul:好吧,如果你想直截了当,在某种程度上你可能是对的。当然,我的意思是,当编译完全成功时,必须围绕它编译的二进制文件。您应该能够针对相同的二进制文件运行生成的应用程序,而无需进行任何配置更改。当然,我假设实际的应用程序正在积极构建中 - 从而保证兼容的库可以以某种方式访问​​
      • 我尝试了 MoMA 工具,没有发现错误。 @paul:在构建配置中检查两个框,构建和部署,两者都被选中。 *我正在使用 VS 2008,我需要 2010 还是什么? *或者,有什么地方可以下载缺失的参考资料(Log System.Math)?
      猜你喜欢
      • 2011-07-12
      • 2017-09-14
      • 2012-12-10
      • 2013-03-31
      • 2015-08-19
      • 2020-03-29
      • 1970-01-01
      • 2010-12-13
      • 2012-05-25
      相关资源
      最近更新 更多