Win32API質問箱 Build53
at TECH
347:デフォルトの名無しさん
07/05/25 21:18:05
>>327
>読み込み違反ってどんな時に起きるんでしょうか?
>LoadLibraryでDLLを呼び出してDLL内の関数を実行すると、
>「アドレス 00000000 でアドレス 00000000 に対する読み込み違反がおきました。」
>となります。そのDLL関数は4つの引数をサポートしていて他の3つの引数では成功します。
とりあえず、考えられるのはこんなとこか?
考察1.まず、LoadLibraryの戻り値はちゃんと値が入っている?
考察2.Unicode版,ANSI版の関数名の問題
引数に文字列を要求している場合はGetProcAddressには明示的に指定しないいけない。
CreateFile→ANSI版はCreateFileA, Unicode版はCreateFileW
考察3.GetProcAddressの戻り値のキャスト先の問題。
多分>>332のわんこが云う様にGetProcAddressの戻り値FARPROCの代入先が不完全で、
関数コール時できてない。
考察4.引数が3つの関数と引数が4つの関数は同一ライブラリなのか?
例えばLoadLibraryの実験で、
一般的な引数3つの関数(Kernel32.libのCopyFile関数)で確認したが、
引数4つのFloodFill関数は未チェックでKernel32.libをGdi32.libに直してない。
考察5.ライブラリの位置が巧く取得できてない。
考察6.実は、呼び出し元のアプリケーションはVBで、巧くDeclarできてない。
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5087日前に更新/234 KB
担当:undef