0

ここにある Discrete Wavelet Transform (DWT) ライブラリを使用してヘルプを探しています: wavelet2d.sourceforge.net/

問題は、DWT 関数呼び出しで発生する実行時エラーです。関数呼び出しで長さベクトルに関連付けられているようです。このコードはそのまま公開されており、MIT の博士号取得者によって動作が報告されていることに注意してください。このエラーは、私が間違ってやっていることが原因であると確信しています。Microsoft Visual Studio 2013 用のプロジェクト ファイルを作成し、ここに含めました: skydrive.live.com/redir?resid=DF1EA4AE66DE04A3%21128

注: 2 つの dll ファイルを system32 フォルダーに配置しました。.lib ファイルは、dll にリンクする MSVC++ プロジェクト ファイルに含まれています。リリース dll を使用しましたが、デバッグ ファイルでも同じ結果が得られます。signal.txt は、wavedem1.cpp プロジェクト ファイルによって使用され、操作されます。

エラーは簡単に生成できますが、次の未処理の例外が発生しています:「WaveletCode.exe の 0x7555D36F で未処理の例外: Microsoft C++ 例外: メモリ位置 0x002EF574 で std::length_error」</p>

コール スタックは次のとおりです。 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 用のマイクロ コントローラーでこのライブラリを使用することです。あなたが提供できる助け/提案をありがとう。さらに情報が必要な場合は、私がこれに比較的慣れていないことを尋ねてください。

ありがとうございました。

4

1 に答える 1

0

これを試すためにVS 2013を持っていませんが、少なくとも1つの問題は、ウェーブレットライブラリがMSVCR100.dll標準ライブラリ(VS 2010から)をインポートするのに対し、アプリケーションはMSVCR120D.dll(VS 2013から)をインポートすることです。 . 2 つの間で標準ライブラリ オブジェクト (ベクトル) を渡しているため、互換性が保証されていないため、問題になる可能性があります。

于 2014-01-03T19:14:06.253 に答える