【发布时间】:2014-01-03 18:40:31
【问题描述】:
我正在使用此处找到的离散小波变换 (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 中 0x7555D36F 处未处理的异常:Microsoft C++ 异常:内存位置 0x002EF574 处的 std::length_error。”
这是调用堆栈: http://img198.imageshack.us/img198/4306/9jdl.jpg 看起来第 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 的微控制器上使用这个库。 感谢您提供的任何帮助/建议。如果您需要更多信息,请询问我对此比较陌生。
谢谢。
【问题讨论】: