【发布时间】:2014-09-19 14:30:49
【问题描述】:
使用 MATLAB Compiler Runtime (mcr) 我创建了一个 matlab 文件的 dll。我可以使用该函数并将所有变量轻松传递给该函数,没有任何问题。
我的问题是当我有一个带有“mwArray”作为变量的类时,例如:
#include <samplemmfile.h>
#include <mclmcr.h>
#include <stdio.h>
class MModel{
int x;
mwArray y;
};
然后我从它创建一个对象,运行时应用程序在“mclcppclass.h”头文件中引发异常:
Access violation executing location 0X0000000000.
每次我想调用这些函数时,将所有输入文件打包并转换为 matlab 格式会非常昂贵,因此想知道这个问题有什么解决方案吗?
谢谢,
【问题讨论】:
-
尝试将 y 设为 mwArray 的指针,然后在构造函数中调用 new 是否有意义?
-
您是否记得在使用之前初始化 MCR 运行时 (
mclInitializeApplication) 和库 (libXXXInitialize)?当你有类时,你必须注意事物的构造顺序。.. -
使用指针实际上不起作用!是的,我确实首先初始化了应用程序和库!我可以轻松地在函数中使用它们,但我应该一直将它们传递给 matlab 格式,这会让人不舒服!
标签: c++ matlab matlab-compiler