問題タブ [rcw]

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 投票する
1 に答える
408 参照

asp.net - 相互運用のための CompilerOptions ディレクティブの削除

経由で COM dll の相互運用機能を作成し、tlbimpそれをアセンブリ キャッシュに追加しました。これを ASP.net ページで使用するには、次のものを含める必要があります

アセンブリ キャッシュにあるのに CompilerOptions ディレクティブが必要なのはなぜですか? これを簡素化して一元化できますか?

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

.net - Interop と RCW (Runtime Callable Wrapper) の違いは何ですか?

Interop と RCW (Runtime Callable Wrapper) の違いは何ですか?

用語だけですか?

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

c# - C# ラッパー インターフェイス エラー: E_NOINTERFACE

私が持っている (SC_COM.dll という名前の) COM オブジェクトの C# ラッパーを生成しようとしていますが、Visual Studio 2008 (Vista を実行) とのリンクで問題が発生しています。COM DLL を使用してこれを登録なしで行う必要があります。マニフェスト ファイルを使用して、Visual Studio に SC_COM.dll について知らせるようにしていますが、これは機能しているようです。TblImp.exe を使用して、Visual Studio 2008 で参照しているタイプ ライブラリ (SC_COMtlb.dll) を生成し、必要な DLL との早期バインディングを実行できるようにしました。DLL は、マニフェストおよび実行可能ファイルと同じディレクトリにあります。

問題は次のとおりです。オブジェクトをインスタンス化し、C# でそのメソッドの 1 つを呼び出そうとすると、次のエラーがスローされます。

エラーが検出されました: タイプ 'SC_COMtlb.SCAccessObjClass' の COM オブジェクトをインターフェイス タイプ 'SC_COMtlb.ISCUploader' にキャストできません。IID '{C677308A-AC0F-427D-889A-47E5DC990138}' を持つインターフェイスの COM コンポーネントでの QueryInterface 呼び出しが次のエラーにより失敗したため、この操作は失敗しました: No such interface supported (HRESULT からの例外: 0x80004002 (E_NOINTERFACE)) .

このエラーが何を意味するのか完全にはわかりません。エラー コードを検索したところ、比較的一般的な C# エラーのようです。ここで COM オブジェクトを間違った方法でリンクしようとしているのですか、それとも見逃している可能性のある重要なステップが他にありますか?

システムに登録されていないため、作成したタイプ ライブラリ (S\C_COMtlb.dll) が実際の COM DLL の場所をどのように認識しているか完全にはわからないことに注意してください。ディレクトリ。これが問題になる可能性がありますか?もしそうなら、どうすれば2つをより適切にリンクできますか?

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

c# - C#2005COMおよび.NETアクセスが拒否されました0x80070005E_ACCESSDENIED

C#2005でC++アプリを書き直しています。アプリには2つのコンポーネントがあります。1つはC++サービスで起動できるアウトプロセスCOMサーバーです。COMサーバーは発信インターフェイスを使用します。つまり、特定のイベントが発生すると、C++サービスモジュールからイベントハンドラーメソッドを呼び出します。

C++サービス部分を書き直しています。今、私は、Runtime Callable WrapperとConnectionpointを使用してCOMサーバーを起動し、イベントハンドラーメソッドの実装を提供するアプリを開発しました。アプリを実行すると、COMサーバーは正常に起動しますが、COMサーバーがアプリのイベントハンドラーメソッドを呼び出そうとすると例外が発生します。

アクセスが拒否されました。(HRESULTからの例外:0x80070005(E_ACCESSDENIED))

私はWebを頻繁に検索しましたが、これらは私の問題に密接に関連するいくつかのトピックです:http: //www.codeproject.com/Forums/1648/COM.aspx?fid= 1648&select=2189754&fr=1792#xx2189754xx

どんな助けでも大歓迎です。

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

.net - VS2008 on .net ランタイム呼び出し可能ラッパーのコード カバレッジ

COM/DCOM オブジェクトの .NET ランタイム呼び出し可能ラッパーを含む .DLL があります。

上記の .DLL にあるサーバー関数を呼び出す VS 2008 の C# でテスト スイートを作成しました。

コード カバレッジを有効にしてテスト スイートを実行すると、コード カバレッジ テストの結果は統計を生成せず、Not Covered ブロックと Covered ブロックの両方にゼロが表示されました。

なぜそうなるのか誰か知っていますか?

.net 呼び出し可能ラッパーである .dll のコード カバレッジを取得する方法を知っている人はいますか?

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

c# - C#を介してCOMコンポーネントを呼び出すラッパークラスは、Disposeパターンを実装する必要がありますか?

COMコンポーネントのラッパーとして機能するc#で記述されたクラスがあります。COMコンポーネントは早期にバインドされ、RCWはVisualStudioによって生成されています。COM参照をクリーンアップするためにラッパークラスにdisposeパターンを実装する必要がありますか、それともすでにRCWがあるため、GCに処理させるだけでよいですか?

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

.net - .NETからCOMオブジェクト参照を安全に解放する

RCWを安全にリリースすることについてネット上でたくさんの記事を読んだことがありますが、何をどの順番で行う必要があるのか​​、正確には誰も同意できないようですので、皆様のご意見をお待ちしております。たとえば、次のようにすることができます。

ただし、ガベージコレクションを実行する前Marshal.FinalReleaseComObject、実行した後、まったく実行しないことを推奨する人もいます。特にCOMオブジェクトから既に切り離された後は、すべてのRCWを手動でGCする必要が本当にありますか?

私の考えでは、RCWをCOMオブジェクトから切り離し、RCWを自然に期限切れにする方が簡単で簡単です。

それで十分ですか?

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

.net - WebBrowserコントロールが設定されているフォームを閉じるときにRaceOnRCWCleanupエラーが発生するのはなぜですか?

VS2008、.NET 2、VB.NET、XP..。

WebBrowserコントロールと[閉じる]ボタンを備えたWindowsフォームがあります。これはMe.Close。フォームのキャンセルボタンが[閉じる]ボタンに設定されているため、ESCを押してフォームを閉じることができます。

loadイベントでWebBrowserコントロールのプロパティを設定するDocumentTextと、HTMLが表示されます。

Visual Studioからアプリケーションを実行しているときに、[閉じる]ボタンをクリックすると、フォームはエラーなしで閉じます。

ESCボタンを押すと

RaceOnRCWCleanupが検出されましたメッセージ:使用中のRCWを解放しようとしました。RCWは、アクティブなスレッドまたは別のスレッドで使用されています。使用中のRCWを解放しようとすると、破損またはデータ損失が発生する可能性があります。

VSの外部でアプリを実行しても、エラーは発生しません。

a)エラーの理由、およびb)エラーを防止または抑制する方法についてのアイデアはありますか?

よろしくお願いします。