VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2007/05/24(Thu) 14:53
投稿者魔界の仮面弁士
Eメール
URL
タイトルRe: API関数のDLLファイル名の定数化について

> このDLLファイル名をIniファイル等から読み込んで設定することは可能でしょうか?

できません。

ゆえに一般的には、絶対パスを指定するのではなくファイル名のみを記載するようにします。
Lib 節にパスが含まれていない場合には、
  (1) App.Path
  (2) CurDir()
  (3) Windows のシステム ディレクトリ
  (4) Windows のディレクトリ
  (5) Environ("PATH") のディレクトリ
の順で DLL が検索されますので、これで対応することになるというわけです。

そういう意味では、(2)のカレント ディレクトリの切替によって対応できなくもないのですが、
DLL がロード/アンロードされるタイミングを制御しにくいため、実践的ではありません。
もし、無理矢理な方法を取るなら、LoadLibrary API を併用することになるでしょう。


> DLLの置き場所を変更することがあり、また、多くのExeで使用しているので、
> 変更のたびにExeを作り直したくないのです。
DLL の置き場を変更しないようにするのが、安全かつ楽な解決策かと思いますよ。

サイド バイ サイド実行だと割り切ってしまえば、DLL をアプリケーション間で共有せずに、
exe と同じディレクトリに固定配置することで、問題なく動くわけですし。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -