从mex文件显式/隐式加载dll

时间:2011-04-04 09:37:51

标签: visual-studio-2008 matlab dll mex loadlibrary

我的问题可能与此重复:matlab mex files and C++ dll (windows),但不完全相同。

当我尝试从Matlab的mex文件(Visual Studio 2008,Windows 7 64位,Matlab 2010b)显式加载dll时,加载在运行时失败(我得到一个NULL句柄)。当不在mex文件中使用时,相同的代码可以正常工作。

当我尝试隐式加载时,通过链接到.lib文件,我得到关于dll中定义的函数的unresolved external symbol链接器错误。同样,当在mex文件中使用时,相同的代码也能正常工作。

原因与上述问题的答案相同,还是我遗漏了什么?如果原因相同,除了上述问题中提出的解决方案之外,还有其他解决方案吗?

1 个答案:

答案 0 :(得分:3)

我假设您的代码使用的是Windows函数LoadLibrary。您应该检查GetLastError的返回值,以查看LoadLibrary调用失败的原因。