你好,我已经查看过论坛的帖子。那位兄弟的问题是没有调用mclInitializeApplication(NULL,0)进行初始化,但我是有进行初始化的。工程只添加了MrandplotLib.h和mrandplot_vc_window_.c两个文件。曾经怀疑是没有装MCRInstaller的原因,但安装后没看到效果。难道需要额外配置系统的环境变量?
代码如下:
#include
#include "MrandplotLib.h"
#include "string.h"
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
mxArray * out = NULL;
mxArray * in = NULL;
int isOK;
double * pOut = NULL;
mwSize i = 0;
mwSize nNum;
char * pBuff = NULL;
mwSize n = 0;
mwSize nSum = 0;
pBuff = (char*)malloc(5000*sizeof(char));
memset(pBuff,0x00,5000*sizeof(char));
//mclInitializeApplication(NULL,0);
if( !mclInitializeApplication(NULL,0) )
{
fprintf(stderr, "Could not initialize the application.\n");
return -1;
}
isOK = MrandplotLibInitialize();
in = mxCreateDoubleMatrix(1, 1, mxREAL);
*mxGetPr(in) = 20;
//in=mxCreateDoubleScalar(20);
isOK = mlfMrandplot_(1,&out,in);
pOut = mxGetPr(out);
nNum = mxGetNumberOfElements(out);
for(i=0;i
{
n = sprintf(pBuff+nSum,"%f\n",pOut[i]);
nSum = nSum+n;
}
MessageBox(NULL, pBuff, "MRANDDATA", MB_OK);
mclWaitForFiguresToDie(NULL);
free(pBuff);
mxDestroyArray(out);
mxDestroyArray(in);
MrandplotLibTerminate();
mclTerminateApplication();
return 0;
}