检索独立MATLAB程序的路径和文件名

时间:2015-04-30 08:16:51

标签: c matlab

我在Windows 7中使用MATLAB R2008b。 编译器是Lcc-win32 C 2.4.1。 我试图从一个可以检索其路径和文件名的m文件创建一个exe文件。一位同事给了我一个C文件(mlgetmodulefilename.c)并建议我使用 mcc -m XYZ.m mlgetmodulefilename.c 生成XYZ.exe

首先,我遇到了一些关于matlab.h的错误。所以我复制,粘贴并将mex.h重命名为matlab.h。 然后,我面临以下错误和警告:

  

警告:名称不存在或不是目录:C:\ Program   FILES \ MATLAB \ R2008b \工具箱\编译\补丁。
  C:\用户\用户\应用程序数据\本地\ TEMP \ mbuild〜1个\ mlgetmodulefilename.obj   .text:未定义引用'_mxCreateString'

有人可以帮我这个吗?谢谢。

mlgetmodulefilename.c

#include "matlab.h"
#include <stdio.h>
#include <windows.h>
#include "megetmodulefilename_external.h"

/*
   INPUT
   None

   OUTPUT
   None

   RETURN
   The full filename of the calling function

   SYNOPSIS

*/
#define BUFSIZE 255

mxArray * Mmegetmodulefilename(int nargout_)
{
    DWORD buflen;
    TCHAR lpFilename[BUFSIZE]=TEXT("");

    buflen = GetModuleFileName(NULL, lpFilename, BUFSIZE);

    if (buflen == 0) {
        return (mxCreateString("") );
    }
    else {
        return (mxCreateString(lpFilename) );
    }
}

1 个答案:

答案 0 :(得分:0)

有关如何获取exe安装路径的说明,请参阅此link

我还没有在R2008b中对此进行测试,但它适用于最新版本。

你在m文件中直接使用它的第一个选项(我已经经常使用它了)