【发布时间】:2016-11-17 19:57:50
【问题描述】:
我想在 Excel 中使用 VBA 对一个大的退化矩阵进行伪逆(类似于广为人知的“pinv”函数)。据我了解,excel 工具无法处理退化矩阵。
我发现没有什么比尝试实现 C++ DLL 库并链接到 VBA 更好的了。我遇到了以下问题:
我的配置是:Windows 10 x64,Office 16 x64。我使用 VS 2015 创建 DLL 作为 x64 DLL。我已经设法创建和链接简单的 DLL,甚至传递到双数组并从中获取。但是当涉及到将诸如 Armadillo 之类的数学库与动态链接的 BLAS 一起使用时,就出现了混乱。
任何使用 BLAS x64 DLL 的工作和调试代码,以防被包装为 DLL 并从 VBA 调用会使 Excel 崩溃。我已经检查了依赖项并将 BLAS/LAPACK dll 放入几乎每个合适的文件夹中。即使我不使用任何传递的参数,它也会崩溃。 Proc Monitor 显示依赖关系正常。看起来当 Excel 从 DLL 调用某些函数时会阻止来自该 DLL 的外部调用。
【问题讨论】:
标签: excel vba armadillo blas matrix-inverse