掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VB,VC++にまたがるプログラムで,データの値を追跡(いわゆるデバッグ)する方法を教えて下さい. (ID:55050)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
いやいや,過去ログって便利ですね.多くの人が同様な問題に取り組んでき たんだな,としみじみ感じます.DLLのデバッグ方法は,今回の私の問題にも 通じており,参考にさせていただきました. http://madia.world.coocan.jp/vc/vc_bbs/200410_04100011.html さて,dft_1d(i - 1, FFTin(0), FFTout(0), FFTW_FORWARD)の変数ですが, VB VC++ i-1 = 3229 n = 1242172 FFTin(0) = Sample.txtから読んだ値 *FFTWin = 0x00000ce3 FFTout(0) = 全て0 *FFTWout = 0x00f90020 FFTW_FORWARD = -1 sign = 17432608 上記のようになりました.ただし,VBの値はVC++に組み込んだexeファイル の値ではなく,VBのプロジェクト上の値です. また,*FFTWin,*FFTWoutのメモリはそれぞれ,以下のようです. FFTout(0)の値はVBでは全て0ですが,VC++では値があるのが気にかかります. *FFTWin 00000CE3 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?????????????? 00000CF1 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?????????????? 00000CFF ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?????????????? ・ ・ ・ *FFTWout 00F90020 00 00 00 00 00 30 D1 3F 00 00 00 00 00 00 .....0ム?...... 00F9002E 00 00 00 00 00 00 00 20 D2 3F 00 00 00 00 ....... メ?.... 00F9003C 00 00 00 00 00 00 00 00 00 20 D2 3F 00 00 ......... メ?.. ・ ・ ・ >DLL中の「dft_1d」関数はvoid型ですよね? >VBの関数で戻り値がない場合は「Function」宣言ではなく、 >「Sub」宣言をしますよね? 仰るとおりでした.早速訂正を致しました. また,Access Violationの件ですが,ここが参考になりました. http://madia.world.coocan.jp/vc/vc_bbs/200410_04100024.html 警告レベルを4にしてビルドすると,DLLウィザードが自動的に作ってくれた 部分で,警告が2つ出ましたが,私の場合は問題がないようにも思います. -----ウィザードが作成した部分-------------------------------- BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; } -----警告文------------------------------------------- \\FFTW\FFTW.cpp(10) : warning C4100: 'lpReserved' : 引数は関数の本体部で 1 度も参照されません。 \\FFTW\FFTW.cpp(7) : warning C4100: 'hModule' : 引数は関数の本体部で 1 度も参照されません。 -------------------------------------------------------
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.