問題タブ [dll]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - データ メンバーをエクスポートするのは正しいですか? (C++)
タイトルが示すように、C++ クラス内から静的データをインポート/エクスポートすることは正しいですか、または有効ですか?
私の問題を発見しました - 私が見ていたクラスの作成者は、このプラットフォームではサポートされていない書き込み可能な静的データをエクスポートしようとしていました。
しかし、応答に感謝します。
asp.net - ASP.NET Web サイトを単一の DLL ファイルにコンパイルするにはどうすればよいですか?
私はついに私のウェブサイトを完成させました。公開しましたが、その結果に驚きました。App_Code は単一の DLL ファイルにコンパイルされましたが、すべてのページの分離コードは独自の DLL ファイルにコンパイルされました。1 つの DLL ファイルにする方法を教えてください。
また、すべて (SubSonic、AJAX など) を同じ 1 つの DLL ファイルにコンパイルすることは可能ですか?
c# - アセンブリを別のアセンブリ内に埋め込む
他のアセンブリのものを使用するクラス ライブラリを作成する場合、それらの他のアセンブリをある種のリソースとしてクラス ライブラリ内に埋め込むことは可能ですか?
つまり、 MyAssembly.dll 、SomeAssembly1.dll、SomeAssembly2.dllをファイル システムに配置する代わりに、他の 2 つのファイルがMyAssembly.dllにバンドルされ、そのコードで使用できるようになります。
また、.NET アセンブリが.dllファイルである理由についても少し混乱しています。この形式は .NET より前に存在しませんでしたか? すべての .NET アセンブリは DLL ですが、すべての DLL が .NET アセンブリであるとは限りませんか? 同じファイル形式やファイル拡張子を使用するのはなぜですか?
c++ - Boost を追加すると、デバッグ ビルドが「非 D」MSVC ランタイム DLL に依存するようになります
何とか回避できるかもしれない厄介な問題がありますが、一方で、このようなものは本当にここにとどまっているように見えるので、むしろそれを乗り越えて何が起こっているのかを正確に理解したいと思っています.
ストーリーは次のとおりです。私は正常に動作する単純な OpenGL アプリを持っています。コンパイル、リンク、または実行に大きな問題はありません。ここで、より集中的な計算の一部をワーカー スレッドに移動して、GUI の応答性をさらに高めることを試みることにしました (もちろん、Boost.Thread を使用します)。
つまり、.cpp ファイルの先頭に次のフラグメントを追加すると:
、その後、デバッグ ビルドを起動しようとすると、「MSVCP90.dll が見つからなかったため、このアプリケーションは開始できませんでした」というメッセージが表示され始めます。(リリースモードは正常に動作します。)
Dependency Walker を使用して実行可能ファイルを見ると、この DLL も見つかりません (これは私が予想していることだと思います)。次の関数を呼び出せるようにするために探していることがわかります。
次に、 のすべてのインスタンスを変換し、代わりにマクロを使用しようとしmin
ましmax
たが、役に立たなかったため、それらへのすべての参照を見つけることができなかった可能性があります。(ソースコードを入手できない外部ライブラリをいくつか使用しています。しかし、これができたとしても、それが正しい方法だとは思いません。)
それで、私の質問は、おそらく次のとおりです。
- デバッグ ビルドで作業しているにもかかわらず、非デバッグ DLL を探すのはなぜですか?
- 問題を解決する正しい方法は何ですか? それとも、手早く汚れたものですか?
Visual Studio 2008 のごく普通のインストールでこれを最初に使用しました。次に、Feature Pack と SP1 をインストールしようとしましたが、どちらも役に立ちませんでした。もちろんリビルドも何度か試みました。
Boost (v1.36.0) 用にビルド済みのバイナリを使用しています。このプロジェクトで Boost を使用するのはこれが初めてではありませんが、別のソースに基づくパーツを使用するのは初めてかもしれません。
インクリメンタル リンクを無効にしても役に立ちません。プログラムが OpenGL であるという事実も関連していないようです — 同じ 3 行のコードを単純なコンソール プログラムに追加すると、同様の問題が発生しました (ただし、MSVCR90.dll と について不平を言ってい_mkdir
ました。後者のboost::create_directory
場合、問題は解決しました!!)。この 3 行を削除または追加するだけで、プログラムが正常に実行されるか、まったく実行されなくなります。
私は Side-by-Side を理解しているとは言えません (これが関連しているかどうかさえわかりませんが、今のところはそれが私が想定していることです)。アプリをビルド、デバッグ、デプロイ...
編集 1:とにかく問題を再現する簡素化された例を作成しようとしているときに、問題がSpread Toolkitに関係していることを発見しました。(ただし、Boost のリンクを開始する前は、これはありませんでした。)
問題を再現できる最小限のプログラムを思いつきました。これは、A.cpp と B.cpp の 2 つのコンパイル ユニットで構成されます。
A.cpp:
B.cpp:
いくつかの観察:
SP_join
A.cppの行をコメントアウトすると、問題はなくなります。- B.cpp の 1 行をコメント アウトすると、問題は解決します。
- B.cpp の 1 行を A.cpp の最初または最後に移動またはコピーすると、問題は解決します。
(シナリオ 2 と 3 では、 を呼び出すとプログラムSP_join
がクラッシュしますが、これは単にメールボックスが有効でないためです...これは当面の問題とは関係ありません。)
さらに、Spread のコア ライブラリがリンクされています。私のシステムにはそのライブラリのデバッグ ビルドがないため、これは私の質問 #1 に対する答えの一部であることは間違いありません。
現在、別の環境で問題を再現できるようにする方法を考え出そうとしています。(実際に敷地外で再現できたらビックリしますが…)
編集 2:わかりました。これで、WinXP32 + VS2008 + Boost 1.36.0 のほぼバニラのインストールで問題を再現できるパッケージができました (まだBoostPro Computing からビルド済みのバイナリです)。
犯人は確かにSpread libであり、私のビルドにはMSVC 6用のかなり古いバージョンのSTLPortが必要です! それにもかかわらず、私はまだ症状が比較的面白いと感じています. また、上記のシナリオ 1 ~ 3 を含め、実際に問題を再現できるかどうかをお知らせいただければ幸いです。パッケージは非常に小さく、必要なすべての部品が含まれている必要があります。
結局のところ、この例では Boost Filesystem ライブラリを使用しているため、Boost.Thread とは特に関係がありませんでした。さらに、以前のように P ではなく、MSVCR90.dll について不平を言うようになりました。
c# - 同じアセンブリの異なるバージョンを参照する
A がアセンブリ B 1.1 と C を参照し、C が B 1.2 を参照している場合、アセンブリの競合をどのように回避しますか?
私は、C の参照がカプセル化され、問題が発生しないと思っていましたが、すべての dll が問題が発生するビンにコピーされているようです。
これを回避する2つの方法は、GACまたはアセンブリバインディングを使用することだと理解していますか? GAC は私にとって最善のアプローチとは思えません。dll がそこにあると仮定するのは好きではないため、ソリューションの lib ディレクトリから dll を参照することを好みます。
アセンブリ バインディングは堅牢ではないように思えますが、アセンブリの 1 つのバージョンが他のバージョンにはない機能を持っている場合、問題は発生しませんか?
私の場合、サードパーティのdllを使用しているため、自分で使用しているよりも古いバージョンのnHibernateを使用しています。
dll - VBScript から DLL メタデータを取得していますか?
VBScript (Windows Scripting Host から起動) のみを使用して、kernel32.dll から DLL メタデータを取得できますか? 具体的には、DLL ヘッダーで指定されているバージョン情報とアーキテクチャを探しています。これは依存関係なしで実行できますか?
vb.net - 2 台の異なるコンピューターで異なる相互運用参照が機能しない
コンピューターにMicrosoft.Office.Interop.Excelへの参照を追加すると、Visual Studio はこれをプロジェクト ファイルに追加します。
チームには別の開発者がいて、エラーが発生し、Interop.Excel.dll という名前のプロジェクトに DLL ファイルを追加する必要があります。これにより、プロジェクト ファイル内の上記のコードが次のコードに置き換えられます。
これは私のコンピューターで動作します。
2 つの方法の違い (どちらが最適か) と、最初の方法を他のコンピューターで動作させる方法を説明していただけますか?
.net - サービスを停止せずに dll を更新する
サービスを停止せずにサーバー プロセスの dll を更新したいと考えています。それ、どうやったら出来るの?asp.net が bin フォルダーに配置された新しい dll を自動的に取得する方法に少し似ています。
.net - .NETアプリケーションの依存関係を確認するにはどうすればよいですか?
.NETアプリケーションの依存関係を確認するにはどうすればよいですか?Dependency Walkerはマネージドアプリで動作しますか?最新のものをダウンロードしてアプリのプロファイリングを試みましたが、説明がほとんどなく終了します。.NETで動作しない場合、ランタイムDLLの読み込みの問題をデバッグするのに役立つ他のツールはありますか?
c++ - 外部 (プロジェクトではない) dll 参照を使用するネイティブ VC++ dll へのパスを指定する方法
dll (プロジェクトにはない) を使用するネイティブ VC++ プロジェクトがあります。ここで、DLL を「Windows が DLL を見つけるために使用する検索パス」 リンクの 1 つに配置する必要があります。
しかし、dllを実行可能ファイル、現在のウィンドウ、またはシステムディレクトリに配置したくありません。
したがって、それによる私の唯一のオプションは、パスを %PATH% 環境変数に追加することです。
他に方法はありますか?
そうするエレガントな方法はありますか(PATHに追加する)?インストール時にこれを行う必要がありますか?私がこれをしている場合、私は心配する必要がありますか?