Calling function from dll within C-MEX

1 次查看(过去 30 天)
Hi All,
I got this error when I'm trying to compile the mult.cpp function, which calls the showmsg():
>> mex mult.cpp dll2.lib
mult.obj : error LNK2019: unresolved external symbol showmsg referenced in function mdlOutputs mult.mexw64 : fatal error LNK1120: 1 unresolved externals
I compiled the dll in VS2010 (C++). The header:
#ifdef __cplusplus
extern "C" {
#endif
namespace dllnamesp
{
class dllclass
{
public:
static __declspec(dllexport) void showmsg();
};
}
#ifdef __cplusplus
}
#endif
------------------------------------------------
*The C++ file:*
#include <iostream>
using namespace std;
#include "printer.h"
#ifdef __cplusplus
extern "C" {
#endif
namespace dllnamesp
{
void dllclass::showmsg()
{
cout << "alma\n";
}
}
#ifdef __cplusplus
}
#endif
In the mult.cpp:
  • -I included the header: #include "printer.h"
  • -I declared the function: void __cdecl showmsg();
  • -I called the function in: static void mdlOutputs(SimStruct *S, int_T tid) { showmsg(); }
The header,lib and dll are in the same folder with the C-MEX function. What Am I doing wrong?
Regards,
Daniel

采纳的回答

Kaustubha Govind
Kaustubha Govind 2012-11-19
If you're using 64-bit MATLAB, you might need to make sure that the DLL is also 64-bit - I believe the default configuration for Visual Studio is a 32-bit target.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 C Shared Library Integration 的更多信息

标签

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by