dll — Реализация дискретного вейвлет-преобразования C ++ — Ошибка времени выполнения

Я ищу некоторую помощь, используя библиотеку дискретного вейвлет-преобразования (DWT), найденную здесь:
wavelet2d.sourceforge.net/

Проблема заключается в ошибке времени выполнения, которая возникает при вызове функции DWT. Кажется, это связано с вектором длины в вызове функции. Хочу отметить, что этот кодекс был опубликован как есть и, как сообщалось, работал докторантом из MIT. Я уверен, что эта ошибка связана с чем-то, что я делаю неправильно.
Я создал файл проекта для Microsoft Visual Studio 2013, который я включил сюда:
skydrive.live.com/redir?resid=DF1EA4AE66DE04A3%21128

Примечание: я поместил два dll-файла в папку system32, а .lib-файл включен в файл проекта MSVC ++, который ссылается на dll-файлы. Я использовал релиз DLL, но я получаю тот же результат с файлами отладки. Signal.txt используется файлом проекта wavedem1.cpp и используется для него.

Ошибка может быть легко сгенерирована, но вот необработанное исключение, которое я получаю:
«Необработанное исключение в 0x7555D36F в WaveletCode.exe: исключение Microsoft C ++: std :: length_error в ячейке памяти 0x002EF574».

Вот стек вызовов:
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.
Спасибо за любую помощь / предложения, которые вы можете предоставить. Если вам нужна дополнительная информация, пожалуйста, спросите, я относительно новичок в этом.

Благодарю вас.

0

Решение

У меня нет VS 2013, чтобы попробовать это, но, по крайней мере, я вижу одну проблему: ваша вейвлет-библиотека импортирует стандартную библиотеку MSVCR100.dll (из VS 2010), тогда как ваше приложение импортирует MSVCR120D.dll (из VS 2013) , Поскольку вы передаете стандартные библиотечные объекты (векторы) между ними, это может стать вашей проблемой, поскольку они не гарантируют совместимость.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]