Calling function from dll within C-MEX
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
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
0 comentarios
Respuesta aceptada
Kaustubha Govind
el 19 de Nov. de 2012
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 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre C Shared Library Integration en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!