問題タブ [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.

0 投票する
5 に答える
7746 参照

windows - WinDbg Dr.Watsonminidump-インストールされたバージョン用に最初にビルドされたpdb/dllが必要ですか?

ターゲットのアプリケーションクラッシュからのmindmpファイルがあります。あるバージョンのソフトウェア用にdll/pdbファイルを再構築し、windbgにシンボルを正しくロードさせることは可能ですか?

私の問題は、pdbファイルがメジャーリリースでのみ保持されることです(残念ながら)。これはデイリービルドであり、自分で再構築できますが、エラーが発生します。

!sym noisyがオンの場合:「画像ヘッダーがメモリ画像ヘッダーと一致しません。」

dllを使用してpdbをビルドしたことに注意してください。これらは、同じRELEASEディレクトリからのものです(デバッグをビルドする必要がありますか?)

これらはリリースビルドです(リリースビルドがターゲットにインストールされてクラッシュするため)、どういうわけかデバッグビルドdllを使用してより多くのシンボル情報を取得する必要がありますか?

0 投票する
7 に答える
1081 参照

dll - dllが構成情報を取得するための最良の方法は?

サードパーティのWindowsアプリケーションによって呼び出されるカスタムdllをいくつか開発しました。これらのdllは、必要に応じてロード/アンロードされます。

ほとんどのdllはWebサービスを呼び出し、これらにはURL、タイムアウトなどを構成する必要があります。

dllは永続的にメモリに存在しないため、呼び出されるたびに構成を読み取る必要があります。これは私には最適ではないようです。

これを処理するためのより良い方法はありますか?

注:IT部門が必要に応じて変更できるように、構成可能な情報はxmlファイルに含まれています。レジストリの編集は受け付けません。

注:これらのdllは、多くのサードパーティアプリケーションに対応しており、基本的に外部EDMSインターフェイスを実装しています。ベンダーは、必要なパラメーターの受け渡しを受け入れません。

注:これはa.NETアプリケーションであり、dllはC#で記述されています。基本的に、ある種のEDMS操作を実行する必要があるときにこのdllにアクセスするシック(Windowsアプリケーション)クライアントとシンクライアントの両方があります。EDMSインターフェイスは、dllに実装する必要のある一連の呼び出しとして定義され、dllはEDMS機能の実装方法を決定します。たとえば、一部のクライアントでは、「ドキュメントの登録」によってDBが更新され、他のクライアントでは、同じ呼び出しでサードパーティのEDMSシステム。ASPクライアントはありません。

私の理解では、dllはクライアントがEDMS操作にアクセスするときにロードされ、呼び出しが終了するとアンロードされます。クライアントは、しばらくの間(場合によっては1時間以上)別のEDMS操作を実行する必要がない場合があります。

0 投票する
3 に答える
9737 参照

winapi - GetExitCodeProcess()は128を返します

拡張機能としてサードパーティの親プロセスにロードされるDLLがあります。このDLLから、CreateProcess APIを使用して外部プロセス(自分自身)をインスタンス化します。これは99.999%のケースでうまく機能しますが、突然失敗して永続的に機能しなくなることがあります(親プロセスを再起動することでこれを解決できるかもしれませんが、これは望ましくないため、問題を解決するまではお勧めしません)。失敗は、CreteProcess()がエラーを報告しなくても外部プロセスが呼び出されなくなったことと、GetExitCodeProcess()が128を返すことによって示されます。これが私が行っていることの簡略化されたバージョンです。

外部プロセスは、Windowsエクスプローラーまたはコマンドラインから手動で呼び出すことができ、それ自体で問題なく起動します。そのように呼び出されると、実際の作業を行う前に、ログファイルが作成され、それに関する情報がログに記録されます。しかし、上記のように呼び出されると、このロギング情報はまったく表示されないため、外部プロセスのメインスレッドがmain()に入らないと想定しています(現在、その想定をテストしています)。

問題を回避するためにできることは少なくとも1つあります(スレッドを中断して開始しないでください)が、最初に障害の原因を最初に理解したいと思います。誰かがこれを引き起こす可能性のあるものとそれを修正する方法を知っていますか?

0 投票する
18 に答える
265752 参照

c++ - 動的ライブラリと静的ライブラリをいつ使用するか

.dllC++ でクラス ライブラリを作成する場合、動的 ( 、 ) ライブラリ.soと静的 ( .lib、 ) ライブラリのどちらかを選択できます.a。それらの違いは何ですか?また、いつどちらを使用するのが適切ですか?

0 投票する
3 に答える
14926 参照

dll - 複数のネイティブ DLL を 1 つの DLL にマージする

1 つの大きな (より大きな) DLL にしたい小さな DLL がたくさんあります (ここで提案されているように)。プロジェクトをマージすることでこれを行うことができますが、あまり邪魔にならない方法が必要です。

複数の DLL を 1 つのユニットにマージできますか?

クイック検索で、これは不可能だと主張するこのスレッドが見つかりました。他に誰か知っていますか?

.NET ではなくネイティブの C++ コードについて話しているので、ILMerge は廃止されました。

0 投票する
7 に答える
3904 参照

c# - C# で Delphi DLL に渡す tStringList

関数が次のように定義された Delphi DLL があります。

function SubmitJobStringList(joblist: tStringList; var jobno: Integer): Integer;

これを C# から呼び出しています。C# には tStringList が存在しないため、最初のパラメーターを宣言するにはどうすればよいですか。私は現在、次のように宣言しています。

しかし、それを呼び出すと、メモリ アクセス違反の例外が発生します。

C#からtStringListに正しく渡す方法を知っている人はいますか?

0 投票する
2 に答える
6122 参照

windows - マニフェストを使用した LoadLibrary での Windows パス検索

LoadLibraryパスなしで呼び出した場合(たとえばLoadLibrary("whatever.dll")、Windows は通常、EXE の検索に使用するのと同じ標準検索アルゴリズムに従います。

私の質問は次のとおりです。アプリケーション マニフェストで、システム DLL の特定のバージョン、たとえば comctl32.dll 6.0 が指定されているとします。その場合、LoadLibrary("comctl32.dll")すぐに正しいサイド バイ サイド フォルダーに移動しますか、それともなんらかの検索を実行しますか?

0 投票する
6 に答える
15925 参照

c# - dll の App.config

dll を動的にロードし (特定のディレクトリにあるものは何でも)、リフレクションによってそれらからワークフロー クラスを呼び出す「エンジン」があります。

データベースへのアクセスを必要とする新しいワークフローがいくつかあるので、dll ディレクトリに構成ファイルを配置することにしました。

しかし、何らかの理由で私のワークフローは構成ファイルを認識しません。

上記の構成ファイルを指定すると、次のコードは空の文字列を出力します。

私が望むのは、設定ファイル名を指定することだけだと思いますが、ここで問題が発生しています。結果が出ないだけ。誰にも指針がありますか?

0 投票する
3 に答える
3798 参照

c++ - アプリケーションを使用する Windows API commctrl.h は、プラットフォーム SDK のないマシンでは機能しません。

次のインクルードを使用するものを書きました。

このコードは、Platform SDK がインストールされた 2 台のマシンでは問題なく動作しますが、Windows のクリーン インストール (もちろん VM) では実行されません (デバッグ バージョンでもリリース バージョンでもありません)。それは非常によく知られていることで死ぬ:

クリーン インストールで実行するにはどうすればよいですか? 見つけられないのはどのdllを使用していますか?私の賭けはcommctrlにありますが、なぜすべてのウィンドウでそうではないのか誰かが教えてくれますか?

さらに、私のCPPはすでに錆びているように見えるので、誰かがそのようなことをデバッグする方法についてのヒントを持っているなら:)

編集 - 私にとってうまくいったのは、Visual Studio 2008 の再頒布可能ファイルをダウンロードすることです。2MB のファイルをダウンロードし、インストールして単純な 11K ツールを実行するのは良い解決策ではないと思います。LoadLibrary を使用して、必要な 2 つまたは 3 つの関数を comctl32.dll から取得するようにコードを変更すると思います。みんな、ありがとう :)

0 投票する
1 に答える
2014 参照

visual-studio - DLLバージョンとVisualStudioがプロセスに接続します

VSのプロセスツールへのアタッチを使用して、SQL ServerReportingServices用に開発しているアドインをデバッグしようとしています。

プロジェクトのdebug/bindirのdllとpdbをReportServer/bin dirにコピーすると、attachtoprocessを使用して正しくデバッグできます。しかし、msbuildスクリプトを使用して、それらのdllとpdbsをReportServer / binディレクトリにコピーすると、間違ったバージョンが取得されます。

1)dllの現在のバージョンを確認し、dllが別のバージョンと互換性がないかどうかを通知するにはどうすればよいですか?

2)そして、どのdll /バージョンがReportServerプロセスによってロードされているかをどのように知ることができますか?

ありがとう!