Clearly the DLL does not export the "return_my_double" function. Recompile your code correctly and make sure the function is really exported. You can double check which functions are exported with tools like dependecy walker.
Best practice for C files in matlab 64bit
2 次查看(过去 30 天)
显示 更早的评论
I'm using Microsoft Visual Studio Express 2012 (64 bit) and Matlab 2013b (64bit) on win7. I'm having some problems with importing and writing dll libraries that work in Matlab. I have looked around and found that this is a quite common problem.
Could Matlab pose a best practice solution for this problem?
Right now I use
test.h:
#ifdef __cplusplus
extern "C"
{
#endif
double return_my_double(double x);
#ifdef __cplusplus
}
#endif
test.cpp:
#include "lhr_test.h"
#ifdef __cplusplus
extern "C" {
#endif
double return_my_double(double x)
{
return x;
}
#ifdef __cplusplus
}
#endif
I compile this without warnings in ms visual studio. In matlab I type
>> unloadlibrary('Project1');
>> loadlibrary('Project1', 'test.h');
Warning: The function 'return_my_double' was not found in the library
> In loadlibrary at 403
>> libisloaded('Project1')
ans =
1
>> m = libfunctions('Project1')
m =
[]
>>
So clearly, matlab loads the library but fails to find the function...
Lars
0 个评论
采纳的回答
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Whos 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!