タグ付けされた質問 「dll」

ダイナミックリンクライブラリ(DLL)は、別のモジュール(アプリケーションまたはDLL)で使用できる関数とデータを含むモジュールです。これは、Microsoft WindowsおよびOS / 2オペレーティングシステムにおける共有ライブラリの概念のMicrosoftによる実装です。

15
コンパイルされた実行可能ファイルにDLLを埋め込む
既存のDLLをコンパイル済みのC#実行可能ファイルに埋め込むことは可能ですか(配布するファイルが1つだけになるように)?可能であれば、どうすればそれを実行できますか? 通常、私はDLLを外に置いてセットアッププログラムですべてを処理するだけでかっこいいですが、これについて質問してくれた人が何人かいて、正直にわかりません。
619 c#  .net  dll  merge  linker 


4
共有オブジェクト(.so)、静的ライブラリ(.a)、DLL(.so)の違いは?
Linuxのライブラリに関していくつかの議論に参加しており、いくつかのことを確認したいと思います。 アプリケーションを構築するときにライブラリを使用する方法は2つあるというのは私の理解です(間違っている場合は修正してください。後で投稿を編集します)。 静的ライブラリー(.aファイル):リンク時に、ライブラリー全体のコピーが最終アプリケーションに入れられるため、ライブラリー内の関数は常に呼び出し側アプリケーションで使用できます。 共有オブジェクト(.soファイル):リンク時に、オブジェクトは対応するヘッダー(.h)ファイルを介してAPIに対して検証されるだけです。ライブラリは、実行時まで実際には使用されません。 静的ライブラリの明らかな利点は、アプリケーション全体を自己完結できることです。動的ライブラリの利点は、「。so」ファイルを置き換えることができることです(つまり、セキュリティのために更新する必要がある場合)バグ)ベースアプリケーションを再コンパイルする必要はありません。 どちらも「.so」ファイルですが、共有オブジェクトとダイナミックリンクライブラリ(DLL)を区別する人がいると聞いています。Linuxまたは他のPOSIX準拠OS(つまり、MINIX、UNIX、QNXなど)でのC / C ++開発に関して、共有オブジェクトとDLLの間に違いはありますか?(これまでのところ)1つの重要な違いは、共有オブジェクトは実行時に使用されるだけであり、アプリケーション内でdlopen()呼び出しを使用してDLLを最初に開く必要があるということです。 最後に、一部の開発者が「共有アーカイブ」について言及しているのを聞いたことがあります。これは、私の理解では静的ライブラリでもありますが、アプリケーションで直接使用されることはありません。代わりに、他の静的ライブラリが「共有アーカイブ」にリンクして、共有アーカイブから構築中の静的ライブラリに一部(すべてではない)の関数/リソースをプルします。 よろしくお願いします。 更新 これらの用語が私に提供された状況では、Linuxを学習する必要があるWindows開発者のチームが使用した事実上誤った用語でした。私はそれらを修正しようとしましたが、(正しくない)言語の規範が行き詰まりました。 共有オブジェクト:プログラムの起動時にプログラムに自動的にリンクされ、スタンドアロンファイルとして存在するライブラリ。ライブラリはコンパイル時にリンクリストに含まれます(つまりLDOPTS+=-lmylib、という名前のライブラリファイルの場合mylib.so)。ライブラリは、コンパイル時とアプリケーションの起動時に存在している必要があります。 静的ライブラリ:アプリケーションコードと、プログラムのビルド時にプログラムに自動的にリンクされるライブラリコード、および両方を含む最終バイナリを含む単一(大きい)アプリケーションのビルド時に実際のプログラム自体にマージされるライブラリメインプログラムとライブラリ自体は、単一のスタンドアロンバイナリファイルとして存在します。ライブラリは、コンパイル時にリンクリストに含まれます(つまりLDOPTS+=-lmylib、mylib.aという名前のライブラリファイルの場合)。ライブラリはコンパイル時に存在している必要があります。 DLL:基本的に共有オブジェクトと同じですが、ライブラリはコンパイル時にリンクリストに含まれるのではなく、dlopen()/ dlsym()コマンドを介してロードされるため、プログラムをコンパイルするためにライブラリがビルド時に存在する必要はありません。また、ライブラリは、dlopen/ dlsym呼び出しが行われたときにのみ必要になるため、アプリケーションの起動時またはコンパイル時に(必ずしも)存在する必要はありません。 共有アーカイブ:基本的に静的ライブラリと同じですが、「export-shared」フラグと「-fPIC」フラグを使用してコンパイルされます。ライブラリはコンパイル時にリンクリストに含まれます(つまりLDOPTS+=-lmylibS、という名前のライブラリファイルの場合mylibS.a)。2つの違いは、共有オブジェクトまたはDLLが共有アーカイブを独自のコードに静的にリンクし、共有オブジェクトの関数を他のプログラムで使用するだけでなく、他のプログラムで使用できるようにする場合に、この追加のフラグが必要になることです。 DLLの内部。これは、誰かが静的ライブラリを提供し、それをSOとして再パッケージ化したい場合に役立ちます。ライブラリはコンパイル時に存在している必要があります。 追加アップデート 「DLL」と「shared library」の違いは、私が当時働いていた会社での(怠惰で不正確な)口語表現(Windows開発者はLinux開発に移行せざるを得ず、用語は行き詰まっている)であり、上記の説明に忠実でした。 さらに、S「共有アーカイブ」の場合、ライブラリ名の後に続く「」リテラルは、その会社で使用されている規則であり、業界では一般的ではありませんでした。
273 c++  c  linux  dll  linker 

14
Windows 7、64ビット、DLLの問題
実行ファイルに問題があります。私は、Windows 7 64ビット開発ボックスでこのC ++ 32ビット実行可能ファイルを実行していますが、これらのMicrosoftアプリケーション(Visual Studio 2008 + 2010、TFS、SDK、Microsoft Office)もすべて備えています。 今、私はまったく同じプログラムのクライアントインストールを取得し、クリーンなWindows 7インストールでそれをテストするように求められました。したがって、私は1つのWindows 7 64ビットVMwareを取得し、それをWindows 7 SP 1に更新しました(私の開発ボックスが調整しているのとまったく同じバージョンです)。しかし、私の開発者用ボックスでは、すべてが問題ありませんが、プログラムはVMware(30日間トライアル)ボックスでは動作しません。 x86 Dependency Walkerは、次のDLLファイルが見つからないことを通知しています。 API-MS-WIN-CORE-COM-L1-1-0.DLL API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL API-MS-WIN-CORE-WINRT-L1-1-0.DLL API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL API-MS-WIN-SHCORE-SCALING-L1-1-0.DLL DCOMP.DLL GPSVC.DLL IESHIMS.DLL 私はそれらのAPI-MS-WIN -... DLLファイルを探して、それらが実際には既にWindows 7の一部である必要があることを発見しました(ただし、一部のサイトはWindows 8およびWindows Server 2012に属していると主張しています)。 私は見つけた提案された修正をすでに試しました: 「sfc / scannow」を実行する Visual Studio 2008 SP1ランタイム実行可能ファイルのインストール しかし、それは何も解決しませんでした。:-( 補足:私の開発用ボックスにもそれらがなく、必要もないようです。たとえば、VMwareへのインストールはリンクしているのに、私のボックスのuser32.dllはそれらのいずれにもリンクしていません。 この問題を修正する方法について何か考えはありますか?Microsoftのページで適切なダウンロード/修正を見つけようとしましたが、失敗しました。 私の問題を解決した後、私が見つけたものを報告したかったのですが、質問が閉じられたため、これを回答として投稿することはできません。 実際には、依存関係ウォーカーツールによって欠落していると報告されたすべてのDLLファイル、つまり * …
268 windows  dll 

30
System.MissingMethodException:メソッドが見つかりませんか?
かつて私のasp.net webformsアプリで機能していたものが、次のエラーをスローします。 System.MissingMethodException:メソッドが見つかりません DoThisこの方法は、同じクラスにあり、それが動作するはずです。 私にはそのような一般的なハンドラがあります: public class MyHandler: IHttpHandler { public void Processrequest(HttpContext context) { // throws error now System.MissingMethodException: Method not found? this.DoThis(); } public void DoThis() { // } }
244 c#  asp.net  dll  nuget  httphandler 

5
64ビットWindowsで64ビットDLLがSystem32に、32ビットDLLがSysWoW64に移動するのはなぜですか?
いつファイルを配置する必要があるか知りたい 64ビットWindowsシステムでは、C:\ Windows \ System32またはC:\ Windows \ SysWOW64。 32ビット用と64ビット用の2つのDLLがありました。 論理的には、32ビットDLLをC:\ Windows \ System32の下に、64ビットDLLをC:\ Windows \ SysWOW64の下に置くと思いました。 驚いたことに、それは逆です!32ビットの1はCに行く:\ WINDOWS \ SysWOW 64、および64 DLLをCに入るビット:\ WINDOWS \システム32。 非常に紛らわしいもの。この背後にある理由は何ですか?


5
LNK4098の解決:defaultlib 'MSVCRT'が競合します
この警告: LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library Visual Studioでかなり一般的な警告です。その正確な理由とそれを処理する正しい方法(あるとしても)を理解したいと思います。 これは、でコンパイルされたデバッグビルドで表示され/MDdます。プロジェクトは、ウィンドウVersion.dllなどpdh.dllにリンクされており、それ自体がとリンクしていMSVCRT.dllます。明らかに、これらのデバッグバージョンがなく、コンパイルできません。 だから私/NODEFAULTLIB:MSVCRTはリンカのコマンドラインに追加し、実際には警告を削除しました。しかし、これは実際に何をするのでしょうか?そして、なぜそれが必要なのですか?

5
DLLおよびLIBファイル-何を、そしてなぜ?
DLLとLIBについては、プログラムが適切に動作するために必要な重要なコード(ライブラリ)が含まれていること以外は、ほとんど知りません。しかし、なぜコンパイラがそれらを生成するのでしょうか?すべてのコードを単一の実行可能ファイルに含める方が簡単ではないでしょうか?そして、DLLとLIBの違いは何ですか?

28
要求された操作は、ユーザーがマップしたセクションが開いているファイルでは実行できません
4つのファイルをbinフォルダーにコピーしようとすると、メインサービスを停止した後、1つのファイル(TexteDll)でエラーが発生します。エラーは: Cannot copy TexteDll: The requested operation cannot be performed on a file with a user-mapped section open 一部のシステムロックが原因である可能性があります。または、別のプロセスがこのDLLを使用している可能性があります。グーグルで検索したところ、システムを再起動すると問題が解決する場合があります。 誰かがこれの原因または解決策を提案できますか?TexteDllのプロパティ(一般、バージョン、セキュリティなど)を調べました。すべてが正常に見えます。
210 windows  dll 

10
特定のdllのPublicKeyTokenを見つけるにはどうすればよいですか?
次のようなプロバイダーをweb.configファイルに再作成する必要があります。 <membership defaultProvider="AspNetSqlMemProvider"> <providers> <clear/> <add connectionStringName="TRAQDBConnectionString" applicationName="TRAQ" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="0" name="AspNetSqlMemProvider" type="System.Web.Security.SqlMembershipProvider, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /> </providers> </membership> ただし、このアセンブリを読み込めないというランタイムエラーが表示されます。これは、PublicKeyTokenが間違っているためと考えられます。アセンブリのPublicKeyTokenを検索するにはどうすればよいですか? または、これで完全に間違った方向に進んでいますか?

19
依存DLLがVisual Studioのビルド出力フォルダーにコピーされない
ビジュアルスタジオソリューションがあります。ソリューションには多くのプロジェクトがあります。スタートアップとして機能し、他のプロジェクトを使用する1つのメインプロジェクトがあります。「ProjectX」というプロジェクトが1つあります。その参照がメインプロジェクトに追加されます。ProjectXは、ソリューションの一部ではない別の.NET dll(たとえば、abc.dll)を参照します。 これで、このabc.dllはメインプロジェクトのbin / debugフォルダーにコピーされますが、そこにはコピーされません。既知の理由でコピーされないのはなぜですか?

7
PythonからDLLファイルを使用するにはどうすればよいですか?
DLL内部からファイルを使用する最も簡単な方法は何Pythonですか? 具体的には、機能を公開するための追加のラッパーコードを記述せずに、これをどのように行うことができますか?C++Python ネイティブPython機能は、サードパーティのライブラリを使用するよりも強く推奨されます。
186 python  dll 

7
HttpContentの使い方が見つかりません
私は使用しようとしていますHttpContent: HttpContent myContent = HttpContent.Create(SOME_JSON); ...しかし、それが定義されているDLLを見つけることができません。 最初に、とMicrosoft.Http同様にへの参照を追加しようSystem.Netとしましたが、どちらもリストにありません。また、参照を追加してみましたSystem.Net.Httpが、HttpContentクラスが利用できません。 だから、誰が私がHttpContentクラスを見つけることができるか教えてもらえますか?
186 c#  asp.net  .net  dll 

8
PHP 7:VCRUNTIME140.dllがありません
WindowsでPHP 7を起動するとエラーが発生します。phpコマンドラインで実行すると、システムエラーのメッセージボックスが返されます。 コンピューターにVCRUNTIME140.dllが見つからないため、プログラムを開始できません。プログラムを再インストールして、この問題を修正してください。 その後、CLIクラッシュしています。 外部WebサイトからDLLファイルをインストールしたくないので、これを修正する方法がわかりません! PHPバージョン: 7.0.0alpha1 VC14 x64スレッドセーフ
168 php  windows  dll  php-7 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.