問題タブ [interopservices]
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# - 別のプロセスから wpf ウィンドウを表示する方法
3つの異なるアプリケーションを作成しました
アプリケーション 1: 「Hello Word」を表示する 1 つの Window(MainWindow) を持つ WPF アプリケーションです。
アプリケーション 2: WPF アプリケーションです このアプリケーションは、アプリケーション 1 の MainWindow のインスタンスを作成します。
アプリケーション 3: これも WPF アプリケーションで、「アプリケーション 1 を表示」と「アプリケーション 1 を非表示」という 2 つのボタンがあります。
次に、アプリケーション 2 とアプリケーション 3 を起動します。アプリケーション 3 から [アプリケーション 1 を表示] ボタンをクリックすると、ウィンドウ (アプリケーション 1) が黒い背景で表示されます。「Hello world」は表示されません。ウィンドウのタイトルが表示されますが、ウィンドウの残りの部分は黒です。
誰かがそれを修正する方法を知っているなら? 私にお知らせください。
私の質問に関して質問がある場合はお知らせください:)。
c# - C#でGCHandle.Allocを使用してクラスインスタンスを固定する
C ライブラリの内部スレッドから呼び出されるコールバック関数を持つアンマネージ C ライブラリを使用しています。コールバックには void * 'context' パラメータがあります。
このコンテキストを C# クラス インスタンスのアドレスに設定して、コールバックからメンバー フィールドとプロパティにアクセスできるようにします。
私の理解では、C コードはインスタンスのアドレスのコピーを取得するため、GC がメモリを移動しないようにクラスのメモリを固定する必要があるということです。ただし、GCHandle.Alloc() は次のように述べています。
そして、クラス型のフィールドを含むクラスまたは構造体を固定しようとする十分なコードが実行時に失敗することを確認してください。
C# クラス インスタンスのアドレスを C++ コードに渡し、そのアドレスが有効なままであること (つまり、GC によって移動されないこと) を保証するにはどうすればよいですか?
EDIT #1 修正: ライブラリは C ライブラリであり、前述の C++ ではありません (上記のテキストで修正)。それが違いを生むべきではないということではありません。
これは C コールバックのプロトタイプです。
そしてC#でラップ:
pvParams
コールバックがインストールされると、C ライブラリに渡されます。ライブラリはポインタを格納しますが、アクセスしようとはしません。コールバックを呼び出すたびに、それを返すだけです。
C++ コードからライブラリを使用する場合、通常this
はpvParams
.
c# - RPC サーバーが利用できません。(HRESULT からの例外: 0x800706BA) - Excel
asp.net c# を使用して Excel テンプレート ファイルにデータを書き込もうとしました。しかし、私は次の例外を得ました。
ExceptionType: "System.Runtime.InteropServices.COMException" メッセージ: "RPC サーバーを利用できません。(HRESULT からの例外: 0x800706BA)"
行数が少ない場合に機能する場合があります。何が問題なのかわかりません。
一度に500行以上書きたい。