LoadLibraryについて


LoadLibrary  2009-05-12 13:11:39  No: 141928  IP: [192.*.*.*]

LoadLibraryについて

VB6 WinXPで開発中。

コード内に。
  hDLL = LoadLibrary("xxxx.dll")

というように、DllはSystem32、Systemの両方のフォルダに格納して
プログラムを走らせると。

System(16bit)フォルダのほうに格納したDllは、「ファイルが見つかりません」と
出てしまいます。

  http://msdn.microsoft.com/ja-jp/library/cc429241.aspx

上記URLには、「32 ビットコードから 16 ビット DLL を直接呼び出そうとした場合も、
LoadLibrary は失敗します。」と記載してあります。

上記コードは、Win95で動作は可能ですが、XPの場合は別な関数を使用しなければならないのでしょうか?

編集 削除
オショウ  2009-05-12 16:21:10  No: 141929  IP: [192.*.*.*]

XPで何をしたいのでしょうか?
XPで16ビットコードを実行したい?

Win95/98では、私もやったことありますし、サンクDLLを作成して
32ビット・16ビットを行き来するようなプログラムも作ったこと
ありますが、XPでは無理かと・・・

※  Win2000以降で16ビットコードを実行させることやってません
    ので、情報は持ってません・・・あしからず。

※  サンクDLL作成するには、VC 1.5 だったかが必要になったかと
    VC 4.0に添付されていたはず。(一応まだ保有してます)

以上。

編集 削除
オショウ  2009-05-12 16:23:04  No: 141930  IP: [192.*.*.*]

追伸

VB6 は、32ビット実行形式用しか作成できませんので、仮に
16ビットをロードできるAPIを呼べても、実際にコールする
ことは不可能・・・

VB4.0 なら16ビット実行形式を出力できますが、わざわざに
使うんですか?・・・

以上。

編集 削除
GOD  2009-05-13 11:50:11  No: 141931  IP: [192.*.*.*]

16/32bit は別としてメッセージとして「ファイルが見つかりません」が出るのは
単純にパスが通っていないからじゃないかな。

編集 削除
オショウ  2009-05-13 12:00:41  No: 141932  IP: [192.*.*.*]

LoadLibraryの検索対象は・・・
そのAPIを呼び出したプログラムのカレントと環境変数のPathのディレクトリ
です。
よって、C:\Windows\Systemは検索パスに入ってませんネ!

しかしながら、LoadLibraryでは16ビットDLLのロードには失敗するとありま
すが、GODさんが云われる通り『ファイルが見つかりません』となるのは、
まず検索対象パスにロードしたいDLLが無い。と云うのが一番。

次に16ビットDLLをロードしたいと言う部分でしょう。

以上。

編集 削除
herberts  2009-06-19 18:45:47  No: 141933  IP: [192.*.*.*]

書き込み読ませて頂きました。LoadLibraryはビギナーにとって難しいもので
すね。
小生PCの(再)起動時に必ずRegSvr32のタイトルでLoadLibrary(文字化け)に
失敗しました。指定されたモジュールが見つかりません。と出ます。この近辺
でOEメールのリンクをクリックするとフリーズしIEへ飛ばないトラブルと関連
あるように思うのですが。

ない知恵絞り調べてトライしておりますが、エラーの出現とフリーズが収まり
ません。何とかご助力頂けませんでしょうか。
宜しくお願い致します。

尚OSはWin XP HE SP3,ウィルスソフトはNorton360で光回線&無線LAN接続
です。

編集 削除
Hongliang  2009-06-19 19:16:11  No: 141934  IP: [192.*.*.*]

> 小生PCの(再)起動時に必ずRegSvr32のタイトルでLoadLibrary(文字化け)に
> 失敗しました。指定されたモジュールが見つかりません。と出ます。この近辺
> でOEメールのリンクをクリックするとフリーズしIEへ飛ばないトラブルと関連
> あるように思うのですが。
OS の再インストール、あるいは PC のリカバリをお勧めします。

> ない知恵絞り調べてトライしておりますが、エラーの出現とフリーズが収まり
> ません。何とかご助力頂けませんでしょうか。
すでに考えられる問題点は挙げられていますよね?
最も妥当な解決策は「DLL を System32 に入れる」です。実際それで「ファイルが見つからない」エラーは出なくなるんでしょう?
// それで他のエラーが出るならそれはまた別の問題です。

編集 削除