• 締切済み

ダイナミックリンクライブラリについて

noname#225520の回答

noname#225520
noname#225520
回答No.1

dllファイルは削除するとアプリケーションが動かなくなります。消してはいけません。

siro-inu
質問者

お礼

ありがとうございます。

関連するQ&A

  • 静的リンクライブラリについて

    WindowsのライブラリにDLLやLIBといった形式があり、それぞれ「動的リンクライブラリ」「静的リンクライブラリ」となっていますが、 静的リンクライブラリとしてビルドされたライブラリを、動的に実行プログラムにリンクさせることは(Cやアセンブラなどの)実装次第で可能なのでしょうか? ビルド時にリンカがやってくれてることを実行時に行えればOK・・・という素直な話ではないのでしょうか。DLLも実行時にGetProcAddress()などを使ってアドレス解決をするわけですし、LIBでも同じことをするのは不可能ではないのでは?と思ったのです。 ※動的/静的リンクの概念や具体的な使用方法などはネット上で調べることができましたが、中身にまで踏み込んだ解説をしているページには巡り合えませんでした。そういう具体的な解説のあるページの紹介だけでもとても助かります。また、「根本的に思い違いをしてるんでは?」というご指摘も非常に助かります。 ※私自身↑に対する需要はないのでコスト・メリットとかは度外視です。興味本位というやつです。 ※別段、Windowsやライブラリの形式にこだわりがあるわけではないですが、これが一番メジャーだろう、ということでWindowsのDLL/LIBを対象に質問させて頂きました。 よろしくお願いします。

  • 静的/動的リンクライブラリについて

    Pythonのctypesを使っていてふと気になったので質問させていただきます。 Cと少々Java、程度の経験しかなかった私にとって、ctypesによって「Cのデータ型を利用できる」「dllをロードして、エクスポートされている関数を使用できる」というのは衝撃でした。 しかし、考えてみれば、仕組みとして理解できなくもない・・・かな?と現在は思っています。 ただ気になったのは、  ・どうして静的リンクライブラリ(.lib)の方は対応してないの? ということです。 [質問1]これは原理的に不可能なのでしょうか、それともctypesやPythonの仕様としてできないだけなのでしょうか。 (おそらくは「原理的に不可能」なのだろう、と個人的には思っておりますが・・・。) 以下は私の中の解釈ですが、 ・マシン語として実行可能な形式になっているdllは、実行時のリンクの機構さえ整っていれば別にC言語でなくともロードや中身のコードを利用することはできる。 ・また、Cのデータ型についても、要は型のバイト数やフォーマット(つまり内部的な扱われ方)をPythonインタプリタが押さえていれば良い話であるから、PythonでCの型を使用することは原理的に可能。 さて、 [質問2]それではlibはどうか。 libもコンパイル済みのものであるなら、Python(またはC以外の言語)からlib内のコードを利用することはできるのではないか? どちらかのみの回答でも結構です。 また、解釈の誤りについてのご指摘や、リンクライブラリの仕組みを解説したページを教えてくださると助かります。 よろしくお願いします。

  • ウィンドウズメディアプレイヤーのライブラリーの曲が再生されない

    ドライブCの容量が一杯になったのでレコードフォルダの曲や動画を ドライブDに移しました。ドライブD→レコードフォルダからは曲の 再生ができるのですが、スタート→ウィンドウズメディアプレイヤー→ ライブラリーを選択しての再生ができません。 何か保存先など指定が必要なのでしょうか? エラーのコメントは ファイルが見つかりません。ライブラリ内の項目とその項目に関連付けられたデジタル メディア ファイルへのリンクが壊れている可能性があります。この問題を解決するには、リンクを修復するか、ライブラリから項目を削除してください。 多数の再生待ち状態になっているファイルを再生できません。問題の詳細については、[プレイ ビュー] タブをクリックし、リスト ウィンドウ領域に表示されている各ファイルの横にあるアイコンをクリックしてください。 などです。全くわかりません。 お知恵をお願い致します。

  • ダイナミックリンクライブラリについて。

    ダイナミックリンクライブラリで、共通な処理(サブルーチン)を集めたプログラムです。という回答を頂いたのですが。どういう事でしょうか?ご教授頂けると幸いです。すみませんが。 結局、そのダイナミックリンクライブラリには、全てのソフトで、共通する処理をその中にまとめて、その中から、ファイルを開くということを呼び出すということでしょうか?ご教授頂けると幸いです。すみませんが。

  • ダイナミックリンクライブラリについて。

    ダイナミックリンクライブラリで、共通な処理(サブルーチン)を集めたプログラムです。という回答を頂いたのですが。どういう事でしょうか?ご教授頂けると幸いです。すみませんが。

  • シンボリック・リンクについて

    Cドライブの容量がいっぱいになったので、Hardlink Shell Extensionというソフトを使って、AppDataを別ドライブ(内蔵)に移したいのですが・・・ 1.Cドライブ>AppDataをリンク元として選択 2.リンク先ライブにAppDataフォルダを作成 3.上記フォルダを右クリックよりリンクを作成>シンボリックリンクの一括作成 これで、リンク先からリンクは作成されるのですが、データ自体はそのままのようです。Cドライブの容量は変わりません。 データ自体をCドライブから移したいのですが、どうすればよいのでしょうか。 よろしくお願いします。 OS: Windows7 64bit

  • スタティックライブラリのリンクについて

    「猫でもわかるWindowsプログラミングを買ったのですが、 VC++2008エクスプレスエディションで出来ると書いてあり 説明どうりやったのですが、スタティックライブラリのリンクをするように書いてあったのですが、リンクはわかったのですが、libファイル を出したいのに、出ません。本には、すべてのファイルが出ており、libファイルとリンクができているのですが、私がやってみたところ、 すべてのファイルができず、libファイルが表示されません。 すべてのファイルを出すにはどうしたらいいでしょうか?

  • ライブラリのリンクについて。

    ふと、疑問に思ったので質問させてもらいます。 C言語などでプログラムを作る時、ライブラリをリンクさせて使うと思いますが、その場合プログラムを実行させた場合メモリー上ではどうなるのか教えた貰いたいです。 例えばprintf関数を使う場合その命令そのものがプログラムに組み込まれてメモリーに読み込まれているのかということです。 前にどこかで読んだ記憶があるのですが、いろいろなところから呼び出される標準的なものはシステムで一箇所にありそれを使うなどということがあったような無かったような記憶があやふやですが見た覚えがあるので気になってしまいました。 あとライブラリなどから一つだけ関数を使う場合、使わない他の関数などもメモリーに読み込まれていたりするのでしょうか? よく使う自分で作った関数を一つのファイルにまとめ、それを定義したヘッダーファイルをincludeした場合も同様で使わないほかの関数はどうなるのでしょうか?

  • windows7Cドライブ内のwindows.oldの扱いについて

    windows7Cドライブ内のwindows.oldの扱いについて windowsXPから7ultimate64bitにアップグレードしたのですが、 Cドライブに出来たwindows.oldフォルダ、これをDドライブに移動しても問題ないのでしょうか? 削除するにはまだ7の環境がわかりきっていないので不安なのですが、 Cドライブが.oldのせいで容量が満タンでCドライブにインストールしたいソフトをインストールできません。 教えてください。

  • シンボリックリンクが効かない!?

    cドライブでSSDを使用しているのですが容量がなくなったため、 dドライブのHDへ容量の多いデータフォルダ一式をシンボリックリンクさせました。 フォルダのプロパティで確認するとリンクせたフォルダの容量が減っているのですが、 cドライブ全体と、DriveAnalyzerで確認すると元の容量のままです。 新しいデータをインストールすると「容量が不足しています」のエラーが出るので データはまだ存在していると思われます。 以下、行った手順と環境について説明いたします。 ご存知の方、お心当たりのある方、なんでも結構ですので助言よろしくお願いします。 ●実装したこと。 cのユーザーフォルダ内にある<AppData/Roaming/Apple Comupter>の <MobileSync>フォルダを、dドライブ内<iTunes>に新しいバックアップフォルダを作り、 ここへのシンボリックリンクを上記cドライブ内に作成した。 ●環境スペック Windows7 Proffesional 64bit core i7 875k メモリ12GB cドライブ=SSD64GB dドライブ=HD 1TB VGA GTX560ti 電源ユニット 850w ※不足している情報等ありましたらご指摘ください。 よろしくお願いいたします。