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

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

14
DLLの依存関係を確認する方法は?
時々、小さなプロジェクトをやっているとき、私は十分注意していなくて、知らないDLLの依存関係を誤って追加してしまいます。このプログラムを友人や他の人に出荷すると、「一部のDLL」が見つからないため、「動作しません」。これはもちろん、プログラムが私のシステムでDLLを見つけることができるからです。 DLLの依存関係の実行可能ファイルをスキャンする方法や、これらのoopsの状況を防ぐためにテストするために「クリーンな」DLLフリー環境でプログラムを実行する方法はありますか?


14
ライブラリ(DLL)の「app.config」に相当
app.configライブラリ(DLL)に相当するものはありますか?そうでない場合、ライブラリに固有の構成設定を保存する最も簡単な方法は何ですか?ライブラリは別のアプリケーションで使用される可能性があることを考慮してください。
149 c#  .net  dll  settings  app-config 

22
.Netが間違った参照アセンブリバージョンを選択する
既存のプロジェクトを新しいマシンにコピーして開発を開始したところ、参照されているアセンブリの1つのバージョン(発生時にTelerik DLL)で問題が発生しました。 プロジェクトは元々古いバージョンのアセンブリを参照していました(v1.0.0.0としましょう)。新しいマシンには最新バージョンのアセンブリがインストールされているので、それを更新したと思った(新しいバージョンv2.0.0.0と呼ぶことにする)。 ここに問題があります:古いv1.0.0.0 dllをプロジェクトフォルダーにコピーして参照として追加すると、Webサイトは問題なく起動します。その参照を削除して(システムから古いDLLも削除して)新しいバージョン(v2.0.0.0)を追加すると、ページに次の例外が表示されます。 ファイルまたはアセンブリ 'XXXXXX、バージョン= 1.0.0.0、カルチャー=ニュートラル、PublicKeyToken = 121fae78165ba3d4'またはその依存関係の1つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULTからの例外:0x80131040) 明らかに、コードは古いバージョンを探しており、それを見つけることができません。しかし、なぜ? そのバージョン番号のソリューションフォルダーを探しましたが、1つの参照を見つけることができませんでした。.csprojファイルのテキストを再確認したところ、バージョンが最新バージョンを正しく示し、HintPathが新しいDLLへのパスを正しく示していることがわかりました。さらに、古いDLLをシステムにインストールしなかったため、GACに表示されません(ただし、v2.0.0.0は予想通り)。 次に、Fusion Log Viewerを有効にして、古いバージョンを探している理由を理解しようとしましたが、運がありませんでした。 Assembly Load Trace: The following information can be helpful to determine why the assembly 'XXXXXX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=121fae78165ba3d4' could not be loaded. === Pre-bind state information === LOG: User = MyComp\me LOG: DisplayName = XXXXXX, …
141 asp.net  dll 

7
実行時に[DllImport]パスを指定するにはどうすればよいですか?
実際、C#プロジェクトにインポートして関数を呼び出すC ++(動作)DLLを取得しました。 DLLへのフルパスを指定すると、次のように機能します。 string str = "C:\\Users\\userName\\AppData\\Local\\myLibFolder\\myDLL.dll"; [DllImport(str, CallingConvention = CallingConvention.Cdecl)] public static extern int DLLFunction(int Number1, int Number2); 問題は、それがインストール可能なプロジェクトになることです。そのため、ユーザーのフォルダーは、実行されるコンピューター/セッションによっては同じではありません(例:pierre、paul、jack、mum、dad、...)。 だから私は私のコードを次のようにもう少し一般的にしたいと思います: /* goes right to the temp folder of the user "C:\\Users\\userName\\AppData\\Local\\temp" then go to parent folder "C:\\Users\\userName\\AppData\\Local" and finally go to the DLL's folder "C:\\Users\\userName\\AppData\\Local\\temp\\myLibFolder" */ string str = …
141 c#  c++  dll  constants  dllimport 

12
「Microsoft.VisualStudio.TestTools.UnitTesting」欠落しているdllはどこにありますか?
C#ビジュアルスタジオプロジェクトで次のエラーが発生します。 タイプまたは名前空間名「VisualStudio」が名前空間「Microsoft」に存在しません(アセンブリ参照がありませんか?) また、microsoft.dllファイルを見つけようとしましたが、参照を取得できませんでした。間違ったDLLを検索していますか? using Microsoft.VisualStudio.TestTools.UnitTesting; using Kya.MsFx.Services.Swiper; namespace Kya.MsFx.Devices.Swiper.Test { [TestClass] public class SwiperWindowTest { private SwiperWebServiceHost m_SwiperWS = null; /// <summary> /// start web service on a separate thread, so tests /// can be executed withut blocking the application thread /// </summary> [ClassInitialize] public void SetupSwiperTests() { m_SwiperWS = …

6
Visual StudioでDLLファイルへのパスを設定するにはどうすればよいですか?
DLLファイルに依存するアプリケーションを開発しました。アプリケーションをデバッグすると、アプリケーションから次のような不満が出ます。 xxx.dllが見つからなかったため、このアプリケーションは起動に失敗しました。 そのため、DLLファイルを.vcprojファイルと同じディレクトリにコピーする必要があります。 DLLファイルを(好ましくは)相対パスまたは(好ましくない)絶対パスで検索するようにプロジェクトを設定する方法はありますか? プロジェクト設定でインクルードとライブラリパスを設定する方法と同様の概念。 つまり、アプリケーションをデバッグする(を押すF5)と、上記のエラーがポップアップします。


17
DLLをロードできません(モジュールが見つかりませんHRESULT:0x8007007E)
.NET 4.0アプリケーションで使用する必要があるアンマネージC ++ APIコードを含むDLLライブラリがあります。しかし、私が自分のdllをロードしようとすると、エラーが発生します。 DLL 'MyOwn.dll'を読み込めません:指定されたモジュールが見つかりませんでした。(HRESULTからの例外:0x8007007E) 私はインターネットで見つけたseveraソリューションを読んで試しました。何も動作しません。 次の方法を試してみました: [DllImport("MyOwn.dll", CallingConvention = CallingConvention.Cdecl)] [return: MarshalAs((UnmanagedType.I4))] public static extern Int32 MyProIni(string DBname, string DBuser_pass, string WorkDirectory, ref StringBuilder ErrorMessage); この記事を試してみて、この例を(ダウンロードしたコードから)実行すると、問題なく実行されます(使用されているdllはbin / debugフォルダーにあります) 私は自分のdllを(binフォルダーに依存するすべてのファイルとともに)コピーしました。 私もこのアプローチを試しましたが、同じエラーが発生しました: [DllImportAttribute(MyOwnLibDllPath, EntryPoint="TMproIni")] [return: MarshalAs(UnmanagedType.I4)] public static extern int MyproIni(string DBname, string DBuser_pass, string WorkDirectory, ref StringBuilder ErrorMessage); 助言がありますか?
113 c#  c++  dll  pinvoke 

14
既存の.exe、.dllのバージョン情報を設定するにはどうすればよいですか?
ビルドプロセスの一環として、コンパイルされたすべてのバイナリのバージョン情報を設定する必要があります。一部のバイナリには、(コンパイル時に追加された)バージョン情報が既にあり、一部にはありません。 次の情報を適用できるようにしたいと思います。 会社名 著作権表示 商品名 製品説明 ファイルのバージョン 製品バージョン これらの属性はすべてビルドスクリプトによって指定され、コンパイル後に適用する必要があります。これらは、C ++ Builder 2007でコンパイルされた標準のバイナリ(アセンブリではない)です。 これどうやってするの?

20
ImportError:DLLの読み込みに失敗しました:%1は有効なWin32アプリケーションではありません。しかし、DLLは
ImportErrorの状況に非常に似ています。DLLの読み込みに失敗しました:%1は有効なWin32アプリケーションではありませんが、その答えはうまくいきません。 私のPythonコードは言う: import cv2 しかし、その行は、この質問のタイトルに示されているエラーをスローします。 C:\lib\opencvこの64ビットマシンにOpenCVをインストールしました。64ビットのPythonを使用しています。 私のPYTHONPATH変数:PYTHONPATH=C:\lib\opencv\build\python\2.7。このフォルダに含まれcv2.pydているのはそれだけです。 私のPATH変数:Path=%OPENCV_DIR%\bin;...このフォルダーには、などの39個のDLLファイルが含まれていopencv_core246d.dllます。 OPENCV_DIRには次の値があります:OPENCV_DIR=C:\lib\opencv\build\x64\vc11。 ImportErrorでの解決策:DLLの読み込みに失敗しました:%1は有効なWin32アプリケーションではありませんC:\opencv\build\bin\Release。「Windows PATH環境変数に新しいopencvバイナリパス()を追加する」と表示されます。しかし、上記のようC:\lib\opencv\build\x64\vc11\binに、PATHにOpenCVバイナリフォルダー()が既にあります。そして、私のOpenCVインストールには、Releaseフォルダーがありません(build / javaの下の空のフォルダーを除く)。 何が問題になっているのかについてのアイデアはありますか?ロードプロセスを詳細にトレースするようにPythonに指示できますか?正確にどのDLLを探していますか? ありがとう、ラース 編集: http://www.dependencywalker.com/によると、cv2.pydin C:\lib\opencv\build\python\2.7は32ビットですが、実行しているマシンとPythonは64ビットであることに気づきました。それが問題でしょうか?その場合、64ビットバージョンのcv2.pydはどこにありますか?
112 python  opencv  dll  path 

14
レジストリキーを開くJavaエラー
コマンドプロンプトでJavaを使用して何かを実行しようとすると、このエラーが発生します。 Error opening registry key 'Software\JavaSoft\Java Runtime Environment.3' Error: could not find Java.dll Error: could not find Java 2 Runtime Environment 私は数日前にJavaディレクトリとレジストリを削除することに失敗しました。コンピュータを再起動しましたが、Javaはまだ正常に動作していたため、今日も再起動しましたが、このエラーが発生します。アンインストールと再インストールを試みましたが、うまくいかないようです。最新のJava JREがインストールされ、パスが環境変数に設定されています。誰でもこれを修正するための手掛かりがありますか?
110 java  dll  runtime  registry 

12
.NETアプリケーションの依存関係を確認するにはどうすればよいですか?
.NETアプリケーションの依存関係を確認するにはどうすればよいですか?DOES 依存関係ウォーカーの管理アプリケーションで動作しますか?私は最新のアプリをダウンロードしてプロファイリングを試みましたが、説明がなく終了します。.NETで動作しない場合、ランタイムDLLの読み込みの問題をデバッグするのに役立つ他のツールはありますか?

4
DLLとの間でオブジェクト、特にSTLオブジェクトを安全に渡すにはどうすればよいですか?
C ++ DLLとの間でクラスオブジェクト、特にSTLオブジェクトを渡すにはどうすればよいですか? 私のアプリケーションはDLLファイルの形式でサードパーティのプラグインとやり取りする必要があり、これらのプラグインがどのコンパイラでビルドされるかを制御できません。STLオブジェクトの保証されたABIがないことを承知しており、アプリケーションを不安定にすることを心配しています。
106 c++  windows  dll  stl  abi 

4
dllexportを使用してDLLから関数をエクスポートする
C ++ Windows DLLから関数をエクスポートする簡単な例を教えてください。 ヘッダー、.cppファイル、および.defファイル(絶対に必要な場合)を確認したい。 エクスポートされた名前を装飾しないでください。最も標準的な呼び出し規約(__stdcall?)を使用したいと思います。ファイル__declspec(dllexport)を使用する必要はありません.def。 例えば: //header extern "C" { __declspec(dllexport) int __stdcall foo(long bar); } //cpp int __stdcall foo(long bar) { return 0; } 名前にアンダースコアや数値(バイトカウント)が追加されないようにしています。 同じヘッダーをサポートせずdllimport、dllexport使用してもかまいません。C ++クラスメソッドのエクスポートに関する情報は必要ありません。Cスタイルのグローバル関数だけです。 更新 呼び出し規約を含めない(およびを使用するextern "C")と、希望どおりのエクスポート名が得られますが、それはどういう意味ですか?pinvoke(.NET)、declare(vb6)、およびGetProcAddress予想されるデフォルトの呼び出し規約は何ですか?(GetProcAddressこれは、呼び出し元が作成した関数ポインターに依存すると思います)。 このDLLをヘッダーファイルなしで使用したいので#defines、呼び出し元がヘッダーを使用できるようにするために、それほど多くの機能を必要としません。 私は*.defファイルを使用しなければならないという答えで大丈夫です。

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