フィルターのクリア

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 Center および File ExchangeC Shared Library Integration についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by