• 締切済み

読み込むDLLのディレクトリを変更したい

Visual C++ 7.1を使用しています。 ライブラリを使って作成したアプリを配布するとき、 一緒にDLLファイルも配布しないと起動できませんよね? 通常は、DLLファイルのパスは実行ファイルと同じか、 system32などのディレクトリに入れなければ 「~~~.dllが見つかりません。」 みたいなエラーが表示されるかと思います。 (違ったらすみません) そうではなく、DLLファイルが10個以上ありますので、 実行ファイルと同じディレクトリだとややこしくなるため、 実行フォルダより1つ下の階層にまとめて置きたいのですが、 そのような事は可能なのでしょうか? できれば、LoadLibraryなどの関数は使わず、 何かしらの設定で出来るのであればそれが望ましいです。 可能でしたら、方法をご伝授いただけると助かります。 よろしくおねがいします。 サンプルですが構成としては以下のような感じです。 (※[ ]はフォルダ名を表します) [Main]  ReadMe.txt  実行ファイル.exe  [Image]   image1.png   image2.png  [Sound]   sound1.wav   sound2.wav  [DLL]   graphics2d.dll   input.dll   sound.dll   file.dll

みんなの回答

noname#208124
noname#208124
回答No.1

XP以降ではマニフェストファイル(orリソース)を使えば可能です http://bitwiz.jp/tabid/56/EntryID/64/Default.aspx 2000以前だとApp PathsのPATHが環境変数PATHに追加されるのでそこもLoad-Time Dynamic Linkingで読み込まれる対象に入ります http://support.microsoft.com/kb/178883/en-us

参考URL:
http://msdn.microsoft.com/en-us/library/ms682586.aspx

関連するQ&A

  • DLLのライセンス

    VisualStudiの開発環境で参照の追加から c:\windows\system32\hnetcfg.dll を指定したところ、プロジェクトの出力フォルダに Interop.NATUPNPLib.dll, Interop.NETCONLib.dll, Interop.NetFwTypeLib.dll ができました。実行ファイルと、これらのDLLファイルが一緒になって動作するようです。 そこで、実行ファイルとこれらのファイルを一緒に配布しようと思うのですが、 【1】これらのファイルを配布することはライセンス上問題ないのでしょうか?(hnetcfg.dllはWindowsXPに標準で入っているdllだと思います)あるいは、ライセンスについてどこを見れば/どこに問い合わせればよいのでしょうか? 【2】もし、ライセンス上問題がある場合、c:\windows\system32\hnetcfg.dllを実行ファイルが参照すればよいと思うのですが、それを参照するように設定することは可能でしょうか? 一般に.NetではこのようなDLLが実行ファイルと一緒のフォルダに置かれると思うのですがそれらのライセンスも同じだと思うのですが、どのようになっているのでしょうか? いろいろわからないことだらけです。よろしくお願いします。

  • フォルダアイコンの変更でpngをdllに変えたい

    質問お願いします。 フォルダアイコンのpng画像を、いろいろ集めたのですが、 いざ変更しようとしたら、dllファイルに変更しないと駄目ですよね・・・ いろいろググったのですが、iconからdllとかに変換出来るソフトは、あったのですが、 pngからdllに変換出来るのがなく困ってます。 集めた、フォルダアイコンの.png画像を、.dll形式に変更させるソフトなどを、 知っている方は、教えて頂けないでしょうか? 宜しくお願いします。 ※OSは、Windows7です。

  • DLLをREGSVR32しないで利用する方法について。

    こんにちは。 Visual Basic 6.0でActiveX DLLを作成しました。 REGSVR32で登録して正常に利用できていますが、 レジストリを使わないで動かしたいと思っています。 フリーソフトではレジストリを使わないで動かせるものがありますが、あのようにするにはどうすればよいのでしょうか。 基本的には、exeファイルとdllファイルを同じフォルダへ置いて動けば良いと思っています。 調べるとLoadLibraryを使えば出来そうに書かれていますが、ご存知の方アドバイスを宜しくお願い致します。

  • 特定のファイルだけをサブディレクトリ以下のファイルをディレクトリを作成してコピーする。

    下のように各フォルダ内にreadme.txtファイルだけを特定のフォルダ内に コピーしたいのですが、ファイル名が同じなので、元のフォルダ階層のように フォルダを作成して、そのファイルだけがコピーされるようなfindを使った 器用な方法はできるのでしょうか? 私は、次の段階で躓いて折ります。 find ./ -name ".forward" execを使い方法は、 find img/ -type d -exec chmod 604 {} \; のようなことは使ったことはありますが、通過したフォルダを作成して、ファイルをコピーする ような方法はどのように記述したらよいか、わかりません。 A +-- a1.txt | a2.txt | readme.txt B +-- b1.txt | b2.txt | readme.txt C +-- c1.txt c2.txt readme.txt

  • ディレクトリの作り方について

    初心者の者です。 プログラムでディレクトリ(フォルダ)の作り方をご存知の方教えてください。 fopen("data/○○.dat", "w")で、 dataというディレクトリ(フォルダ)の中に○○.datというファイルを 作ることができるという事は分かったのですが、この方法では あらかじめdataというディレクトリを作らなければなりません。 プログラムを実行させるときにディレクトリを作り、その中にファイルを 作るにはどのようにすればよいでしょうか? また、動作環境はWindowsとUNIXの両方で使いたいのですが, 使い分けなければならないのでしょうか? よろしくお願いします。

  • 「DLLファイル」とは?

    DLLファイルについて、よく分かりません。 たまにPHPなどでプログラムを組む時に、拡張ライブラリとして.dllファイルをextディレクトリに入れたりするのですが、本来DLLファイルはどのプログラミング言語からでも呼び出せるものなのでしょうか?(↓の説明を読むと、そんな気がしてしまうのですが)それとも、特定の言語のライブラリなどをdllと呼ぶようなイメージでよいのでしょうか?それとも、ぜんぜん別のものなのでしょうか? http://e-words.jp/w/DLL.html

  • ファンタテニスの音声差し替え

    ゲームを起動したあと、元のwavファイルに、差し替えたいwavファイルをresフォルダのsoundの中に放り込んで上書きしたのですが、何も変わっていません…。 なにか違うやり方があるのでしょうか? 詳しい方どうか方法を伝授してくだい。

  • ディレクトリのコピー

    お世話になっています。 フォルダを複数含む構成のプログラム(600KBほど)があるのですが、これをサーバー上にアップしたいと考えています。 具体的にやりたいこととは、1つのサーバーに百近いディレクトリがあるのですが、その全てのディレクトリの決めた階層にフォルダで構成されたプログラムを置きたいと考えています。 そこで質問なのですが、ファイルだけであったら、copy関数を利用できるかと思うのですが、フォルダを含んでいる場合、copy関数のようなコピーできる関数はあるのでしょうか? 今回、質問するにあたり当初はファイルのコピーのように(copy関数)、サーバーに設置したいプログラムと、コピー&各ディレクトリに設置するスクリプトを設置して動かそうと思っていたのですが、ディレクトリをコピー出来ないことを知り、立ち止まってしまいました。 他のやり方でも何でも構いません。アドバイスいただけたら幸いです。 お忙しい中恐縮ですが、宜しくお願いいたします。

    • 締切済み
    • PHP
  • find関数が1階層(カレントディレクトリ)にしか利きません。

    find関数が1階層(カレントディレクトリ)にしか利きません。 Active Perl+MS-DOS(WindowsXP)の環境です。 深い階層を持つディレクトリAで  find(\&dirfiletotal,'.'); を実行し、特定のファイル名を検出しています。 なぜかカレントディレクトリ(A)にあるファイルに対してしか動作しません。(結果は正常です。) find関数は再帰的、つまり下の階層も含めてファイル検出するのだと思っていましたが、間違いでしょうか? もし間違いであれば、どのように書き変えればいいか、ヒントをいただけると大変助かります。 どうぞ宜しくお願い致します。

    • ベストアンサー
    • Perl
  • サブディレクトリからファイルやディレクトリを上の階層へ移動する.2

    D=ディレクトリ(フォルダ) F=ファイル D1 ├ D2 │ └ F1 └ D3   └ D4     ├ F2     └ F3 先ず例えば指定したディレクトリをD1とした場合、 D2、D3、はディレクトリとみなしサブディレクトリは D2、D3、以降に保存されているディレクトリをサブディレクトリとみなします。 この場合D4がサブディレクトリにあたるという事になります。 保存されているファイル、フォルダの階層がこの様な内容だった場合、 サブディレクトリであるD4から、F2、F3を上の階層へ移動させる(D3へ移動させる)方法を探しています。 D1 ├ D2 │ └ F1 └ D3   ├ F2   ├ F3   └ D4 ↑ちなみに作業終了後はこのような状態になっていれば良い。 尚、その際D4は削除されてもされなくとも構いません。 このような階層内容のフォルダが複数あるので 指定したディレクトリに対しこのような動作を自動的に行ってくれると望ましい。 若干分かり難いかもしれませんが、この様な動作や 又、似たような動作を指定したディレクトリに対し行ってくれるツールや方法を探しています。 ご存知の方、心当たりのある方、回答していただけると幸いです、よろしくお願いします。 以前も似たような質問をしたのですが解決に至る回答は得られませんでした。 なので再度質問させてもらいました、何卒よろしくお願い致します。

専門家に質問してみよう