gpt4 book ai didi

c++ - 从 C++ : fail to initialize the library 调用 matlab dll

转载 作者:行者123 更新时间:2023-11-28 07:27:23 24 4
gpt4 key购买 nike

我尝试使用演示代码来检测和匹配 David Lowe (lowe@cs.ubc.ca) 的 SIFT 特征

在我的代码中。所以我在Matlab中编译(.m)文件生成DLL。下面是 Matlab 中的命令代码:

           mcc -B csharedlib:SiftMatch match.m sift.m -v

但是,当我在我的 C++ 代码中(在 VS2010 下)使用 DLL 时,出现了一个问题:

              SiftMatchInitialize();
This function returned false. I could not initialize the library.

调试显示:

    bool MW_CALL_CONV SiftMatchInitializeWithHandlers(
mclOutputHandlerFcn error_handler,
mclOutputHandlerFcn print_handler)
{
int bResult = 0;
if (_mcr_inst != NULL)
return true;
if (!mclmcrInitialize())
return false;
if (!GetModuleFileName(GetModuleHandle("SiftMatch"), path_to_dll, _MAX_PATH))
return false;
{
mclCtfStream ctfStream =
mclGetEmbeddedCtfStream(path_to_dll);
if (ctfStream) {
bResult = mclInitializeComponentInstanceEmbedded( &_mcr_inst,
error_handler,
print_handler,
ctfStream);
mclDestroyStream(ctfStream);
} else {
bResult = 0;
}
}
if (!bResult)
return false;
return true;
}

在此函数中,ctfStream 为 NULL,bResult 等于 0。那么,问题是什么?

最佳答案

不要将 MATLAB Compiler 生成的 .c/.cpp 文件包含到您的项目中。只需要头文件和.lib文件。

关于c++ - 从 C++ : fail to initialize the library 调用 matlab dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18512801/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com