LoadLibraryについて


LoadLibrary  2009-05-12 22:11:39  No: 141928

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-13 01:21:10  No: 141929

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

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

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

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

以上。


オショウ  2009-05-13 01:23:04  No: 141930

追伸

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

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

以上。


GOD  2009-05-13 20:50:11  No: 141931

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


オショウ  2009-05-13 21:00:41  No: 141932

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

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

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

以上。


herberts  2009-06-20 03:45:47  No: 141933

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

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

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


Hongliang  2009-06-20 04:16:11  No: 141934

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

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


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加