問題タブ [unmanaged]
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++ - MessageBox の [再試行] ボタンを無効にしてから有効にするにはどうすればよいですか?
次のアンマネージ C++ コードがあります。
RETRY ボタンを 10 秒間 (たとえば) 無効にしてから有効にしたい。
これどうやってするの?
c# - AfxFreeLibrary を使用してアンマネージド ライブラリをアンロードすることで、マネージド アプリのワーキング セットを減らすことはできますか?
AfxLoadLibrary を使用してクライアント コンピューターにサード パーティ コンポーネントが存在する場合は、そのコンポーネントを読み込むマネージド C++ コンポーネントを読み込むマネージド Windows アプリケーションがあります。検出されたら、管理対象の親アプリケーションのワーキング セットを下げるために、AfxFreeLibrary を使用してコンポーネントをアンロードします。
AfxFreeLibrary への呼び出しは成功しますが (Process Explorer を使用して確認)、メモリは解放されません。これはマネージド アプリケーションの性質によるものですか? それとも、このプロセス スペースを解放する方法はありますか?
この問題に取り組むための別の方法を一般的に探しているわけではありません。コードは既に運用されているためです。むしろ、アンロードのアプローチが価値があるかどうかを調べたいと思います。
.net - アンマネージコードからマネージコードを呼び出す方法は?
アンマネージC++から.NETコードを呼び出したい。私のプロセスエントリポイントは.NETベースなので、CLRのホスティングについて心配する必要はありません。.NETオブジェクトのCOMラッパーを使用して実行できることは知っていますが、管理対象クラスの個々の静的メソッドにアクセスしたいので、COMは私の最短/最も簡単なルートではありません。
c++ - C++ のアンマネージ DLL
私は、C++ のアンマネージ DLL に関する多くのチュートリアル/記事を読んできました。しかし、私の人生では、その概念を理解できないようです。ヘッダファイルが必要かどうか、それをエクスポートする方法、.lib ファイルが必要かどうか、そして何が必要かについて意見の相違があるように見えるので、私は簡単に混乱します。
したがって、次のような関数があると仮定しましょう。
実際のコードは無視して、この単純な関数をそれ自体で呼び出すことができる DLL にするために必要なものは何ですか? 最初の行に __dllexport などを追加するだけですか、それともヘッダーが必要ですか? 私はこれらすべてに困惑しています。
unmanaged - マネージド/バイト コードとアンマネージド/ネイティブ コードの違いは何ですか?
「私たちプログラマー」が非プログラマーや管理タイプにとって単純だと考えるかもしれないいくつかのことを説明するのが難しい場合があります。
そう...
マネージ コード (または Java バイト コード) とアンマネージ/ネイティブ コードの違いを非プログラマーにどのように説明しますか?
.net - DLLImport はアンマネージ DLL をどこで検索しますか?
簡単な質問: .Net で DLLImport 属性を宣言するとき、ランタイムはその DLL 依存関係を解決するためにどこを見ますか? DLL とそのすべての依存関係を bin フォルダーにダンプする必要がありますか?
visual-studio - vs2008は、管理されていないdllに関する問題を公開します
C#プロジェクトから呼び出しているC#ラッパーを含むアンマネージdllのコレクションがあります。次のようなビルドイベント行を追加しました。
問題は、アプリケーションを公開しようとすると、それらのdllが含まれず、それらのdllのいずれかを呼び出すまで実行されるアプリケーションが作成されるため、公開が役に立たないよりも悪いことです。
では、プロジェクトを公開するときにアンマネージdllを含めるにはどうすればよいですか?
com - .NET BackgroundWorker スレッドからのアンマネージ コードへの呼び出しが UI に影響するのはなぜですか?
BackgroundWorker
.NET 2.0スレッドで長時間実行される一連の操作があります。参照アセンブリにあるアンマネージ コードを呼び出すと、呼び出しが完了するまで UI がフリーズします。
どうしてこれなの?BackgroundWorker
スレッドからこれらの呼び出しを行うべきではありませんか?
はい、それは COM コンポーネントですが、それが STA であるかどうか、およびその影響/解決策が何であるかを判断する方法がわかりません。そのコンポーネントを何度か呼び出しますが、UI が応答しなくなっているのに気付くのは長時間実行されるものだけです。
これらの呼び出しは、サーバーからデータを取得します。
.net - アンマネージ コードで使用される .NET コンポーネントのメモリ管理
new
管理されていない世界で作業する場合、ヒープにメモリを割り当てた場合 (たとえば、C++ でキーワードを使用して) は、自分でクリーンアップする必要があります。また、後でそれを使用しAddRef
て作成された COM コンポーネントを確認する必要があります。おそらく次のようなもの:CreateInstance
Release
明らかに、スマート ポインターなど (C++ で) を使用できますが、それは重要ではありません...
AddRef/Release
COM コンポーネントから取得されたオブジェクト (上記の例の m_anotherObj など)についても必要ですか?
さらにややこしいことに、この特定のコンポーネントが、実際には .NET コンポーネントであり、COM インターフェイスを介してアンマネージ コードに公開されている場合はどうなるでしょうか。ガベージ コレクターはデータを片付ける方法を知っていますか? それとも、管理されていない世界ですべて手動で行う必要がありますか?
c# - C#/.NET で実行中のアンマネージド アプリケーションから製品情報を取得する
C# では、リフレクションを使用して製品名、バージョンなどのアセンブリ関連情報を取得できます。
実行中のアセンブリがアンマネージ C++ (たとえば) で記述されている場合、どのようにすればよいでしょうか? それは可能ですか?COM インターフェイスを介してアンマネージ コードで呼び出される .NET dll があるとします。
編集:
物事を完全に明確にするために、これは私のシナリオです:
- アンマネージ C++ で記述された実行可能ファイルがあります
- C#/.NET で記述された dll があります。
- dll は、COM インターフェイスを介して実行可能ファイルによって呼び出されます。
- .NET dll 内で、呼び出し元の実行可能ファイルの製品名やバージョンなどの情報を取得できるようにしたいと考えています。
可能?