필터 지우기
필터 지우기

Calling function from dll within C-MEX

조회 수: 1 (최근 30일)
Daniel
Daniel 2012년 11월 18일
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