C++ 离散小波变换C++;实现-运行时错误

C++ 离散小波变换C++;实现-运行时错误,c++,dll,dwt,C++,Dll,Dwt,我正在使用此处提供的离散小波变换(DWT)库寻求帮助: wavelet2d.sourceforge.net/ 问题是在DWT函数调用时发生的运行时错误。它似乎与函数调用中的长度向量相关联。我想指出的是,这段代码是按原样发布的,据报道是由麻省理工学院的一位博士后撰写的。我很确定这个错误是由于我做得不对。 我为Microsoft Visual Studio 2013创建了一个项目文件,其中包括: skydrive.live.com/redir?resid=DF1EA4AE66DE04A3%21128

我正在使用此处提供的离散小波变换(DWT)库寻求帮助: wavelet2d.sourceforge.net/

问题是在DWT函数调用时发生的运行时错误。它似乎与函数调用中的长度向量相关联。我想指出的是,这段代码是按原样发布的,据报道是由麻省理工学院的一位博士后撰写的。我很确定这个错误是由于我做得不对。 我为Microsoft Visual Studio 2013创建了一个项目文件,其中包括: skydrive.live.com/redir?resid=DF1EA4AE66DE04A3%21128

注意:我将两个dll文件放在system32文件夹中,而.lib文件包含在链接到dll的MSVC++项目文件中。我使用了发行版dll,但调试文件得到了相同的结果。signal.txt由wavedem1.cpp项目文件使用并在其上操作

该错误很容易生成,但下面是我得到的未处理异常: “WaveletCode.exe中的0x75 55 d36f未处理异常:微软C++异常:STD::LoththyTror在内存位置0x02EF54。”

以下是调用堆栈: 第65行似乎导致了一个问题,即DWT函数调用。 我试图查看MSVC++2013中的“中间窗口”,但在执行过程中它是空的

还有一些来自MSVC++:

'WaveletCode.exe' (Win32): Loaded 'C:\Users\Matt\Desktop\WaveletCode\Debug\WaveletCode.exe'. Symbols loaded.
'WaveletCode.exe' (Win32): Loaded 'C:\Windows\System32\ntdll.dll'. Cannot find or open the PDB file.
'WaveletCode.exe' (Win32): Loaded 'C:\Windows\System32\kernel32.dll'. Cannot find or open the PDB file.
'WaveletCode.exe' (Win32): Loaded 'C:\Windows\System32\KernelBase.dll'. Cannot find or open the PDB file.
'WaveletCode.exe' (Win32): Loaded 'C:\Windows\System32\wavelet2d.dll'. Cannot find or open the PDB file.
'WaveletCode.exe' (Win32): Loaded 'C:\Windows\System32\libfftw3-3.dll'. Module was built without symbols.
'WaveletCode.exe' (Win32): Loaded 'C:\Windows\System32\msvcrt.dll'. Cannot find or open the PDB file.
'WaveletCode.exe' (Win32): Loaded 'C:\Windows\System32\msvcp100d.dll'. Cannot find or open the PDB file.
'WaveletCode.exe' (Win32): Loaded 'C:\Windows\System32\msvcr100d.dll'. Cannot find or open the PDB file.
'WaveletCode.exe' (Win32): Loaded 'C:\Windows\System32\msvcp120d.dll'. Cannot find or open the PDB file.
'WaveletCode.exe' (Win32): Loaded 'C:\Windows\System32\msvcr120d.dll'. Cannot find or open the PDB file.
First-chance exception at 0x644921A9 (wavelet2d.dll) in WaveletCode.exe: 0xC0000005: Access violation reading location 0x9F8ED620.
Unhandled exception at 0x644921A9 (wavelet2d.dll) in WaveletCode.exe: 0xC0000005: Access violation reading location 0x9F8ED620.
The program '[5532] WaveletCode.exe' has exited with code 0 (0x0).
最终目标是在微控制器上为一些DSP使用该库。 感谢您提供的任何帮助/建议。如果你需要更多的信息,请问我是相对新的这一点


多谢各位

我没有使用VS 2013来尝试这一点,但我发现至少有一个问题是,您的小波库导入了MSVCR100.dll标准库(从VS 2010开始),而您的应用程序导入了MSVCR120D.dll(从VS 2013开始)。由于您在两者之间传递标准库对象(向量),这可能是您的问题,因为它们不能保证兼容。

是,或者使用VS 2013重新编译小波库,如果您有源。我没有源。目前,我正在下载《梦想火花》的VS2010版本。谢谢你的建议。我将返回结果。在将.lib文件添加到“项目属性”>“链接器”>“常规:1”>“链接:致命错误LNK1123:转换为COFF期间失败:文件无效或损坏”下的其他依赖项后,我遇到了一个新错误。您可能将链接器指向了错误的文件,但我只是猜测。