无法将dll链接到Matlab cmex函数中的mexfunction

无法将dll链接到Matlab cmex函数中的mexfunction,matlab,dll,mex,Matlab,Dll,Mex,有人知道如何在Mex命令中链接dll或lib吗 我有一个来自ghxdl.dll和ghxdl.lib的外部函数的C代码链接。我在标头中定义了外部函数,该函数与我用来生成dll和lib的函数相同 typedef struct GHX{ double output[28]; int val; }GHX; #ifdef __cplusplus extern "C" { // only need to export C interface if // used by C++ so

有人知道如何在Mex命令中链接dll或lib吗

我有一个来自ghxdl.dll和ghxdl.lib的外部函数的C代码链接。我在标头中定义了外部函数,该函数与我用来生成dll和lib的函数相同

typedef struct GHX{
    double output[28];
    int val;
}GHX;
#ifdef __cplusplus
extern "C" {  // only need to export C interface if
    // used by C++ source code
#endif
#ifdef GHXDLL_EXPORTS
#define MATHFUNCSDLL_API __declspec(dllexport) 
#else
#define MATHFUNCSDLL_API __declspec(dllimport) 
#endif
    MATHFUNCSDLL_API void GHXfunction(double *XIN, double *parameter, int mode, int hour, GHX *result);
#ifdef __cplusplus
}
#endif
我编写了一个测试代码,通过链接到lib和dll来调用这个函数,它可以正常工作。同时,我为MEXAPI编写了一个简单的测试代码,然后通过

mex test.c

它是有效的

然后,我遇到了问题。当我将外部函数添加到MEXAPI并使用以下命令在matlab中编译时,它失败了

mex -largeArrayDims -I'c:\Users\zzhang\API' -L'c:\Users\zzhang\API'  -lGHXDLL  GHXCmexAPI.c
错误是:

Error using mex
   Creating library GHXCmexAPI.lib and object GHXCmexAPI.exp
GHXCmexAPI.obj : error LNK2019: unresolved external symbol __imp_GHXfunction referenced in function mexFunction
GHXCmexAPI.mexw64 : fatal error LNK1120: 1 unresolved externals
我知道这个错误意味着mexfunction没有使用外部函数链接到lib,但我尝试了许多不同的方法,仍然无法处理它

我希望有人能帮我弄清楚怎么做

谢谢


智成

按名称而不是通过
-l
列出DLL导入库文件。同时添加
-v
并检查
link.exe
命令行:

mex -v -largeArrayDims -I'c:\Users\zzhang\API' -L'c:\Users\zzhang\API' ... GHXCmexAPI.c GHXDLL.lib mex-v-LargearyDIMS-I'c:\Users\zzhang\API'-L'c:\Users\zzhang\API'-。。。 GHXCmexAPI.c ghxdl.lib
检查
链接
命令时,还要验证包含DLL的文件夹中是否存在
/LIBPATH:

谢谢,我已解决了此问题。原因是Dll构建在X32平台中,但matlab R2014a需要X64。所以我在x64平台上重建了它,然后它工作了。