問題タブ [ccw]

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 に答える
402 参照

c# - dll の依存関係から CCW を作成する方法

C# クラス ライブラリ用の 1 つの CCW コンポーネントを作成しています。このライブラリにはサード パーティの DLL が含まれています。

  1. このユーザー コントロールは、Classic ASP ページで使用する必要があります

  2. その目的のために、CCW Wrapper クラスを生成しました

  3. Wrapper クラスで関数宣言用のインターフェースを作成します。

このインターフェイスとクラスには、C# クラス ライブラリ DLL とサードパーティ DLL のリファレンスが含まれています

インターフェース

インターフェース実装クラス

従来の ASP 内の JavaScript

この DLL を gacutil /i に登録し、これらの DLL に Java スクリプト コードにアクセスしようとすると、「未定義」エラーが発生します。これで何が悪いのかわかりません。これには、サードパーティの DLL と C# クラス ライブラリを GAC にインストールする必要があります。

0 投票する
0 に答える
306 参照

c# - C++ COM CoCreateInstace() は -858993460 を返します

サード パーティの .NET dll をネイティブ C++ dll に公開したいので、C# でラッパー dll を作成しました。しかし、ネイティブ C++ dll では、CoCreateInstance() を実行するたびに、この -858993460 エラーが返されます。

----------------------プログラムの構成は以下の通りです-----------------

ThorDetectorSwitch.dll(ネイティブ C++ dll) -> MCLWrapper.dll(COM C# dll) -> mcl_RF_Switch_Controller64.dll(サード パート .NET dll)

----------------------以下は私のコードの一部です---------------------- -

C# ラッパー dll (MCLWrapper.dll、COM 呼び出し可能ラッパー dll):

ThorDetctorSwitch.dll のコンストラクタ (CCW MCLWrapper.dll を呼び出すネイティブ C++):

MCLWrapper.dll の登録に使用したコマンド ライン

レジストリを正常に返します。

エラー: エラーは次の場所で発生します

そして、この線が完全に実行されたとは思いません。

誰でも何か考えがありますか?どうもありがとう。

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

.net - COM 呼び出し可能なラッパー オブジェクトの作成の失敗を診断する方法は?

以下を使用して、(ネイティブ コードから) COM オブジェクトを作成していますCoCreateInstance

実際、私は Delphi を使用しています。つまり、ヘルパー関数を呼び出します。

ほとんどの場合、この関数は成功します。しかし、同じ実行可能ファイル、同じプロセスで、への呼び出しが次のように失敗することがあります。CoCreateInstance

関数を再度呼び出すと、成功する場合と失敗する場合があります。(明らかな)韻や理由はありません。

それは私のCOM dllではありません

これが私が作成した通常のCOM DLL であるOutputDebugString場合DLL_ATTACHDllGetClassObject.

残念ながら、これは COM dll ではありません。これは .NET アセンブリ dll です。また、COM サブシステムは単に myを「ロード」dllするだけではありません。代わりに、COM は以下をロードするように指示されますmscoree.dll

そしてmscoree.dll、必要な機能をエクスポートしGetClassObjectます。私ではなく、mscoree.dll戻ってきた人E_FAILもそうです。私の開発マシンでは障害が発生することはありませんが、顧客のマシンでは一貫して断続的に障害が発生します。

.NET ログを有効にするにはどうすればよいですか?

問題は、(有用なものではなく)mscoree.dll戻ってくるものなので、問題が何であるかを教えてもらうにはどうすればよいですか?E_FAIL

たとえば、(COM オブジェクトを頻繁に使用する唯一の顧客であることに加えて) 障害を経験している唯一の顧客は、たまたま Windows XP を使用しているようです。おそらく、.NET フレームワーク (バージョン 4 より前) で、異なるバージョンの .NET ランタイムを同じプロセスにロードできないという既知のバグが発生している可能性があります。

これを行うと、CLR バージョンの依存関係が導入され、ホスト プロセスが期待する CLR バージョンと競合する可能性があります。

この障害モードは、COM ラッパーを使用する場合の MSDN の記事にも記載されています。を指定するオプションがありclrVersionます。

別のバージョンの CLR が既に読み込まれていて、指定されたバージョンをインプロセスで同時に読み込むことができる場合は、指定されたバージョンが読み込まれます。それ以外の場合は、読み込まれた CLR が使用されます。これにより、ロード障害が発生する可能性があります。

これWindows XP または .NET Framework の以前のバージョンでの断続的なロード エラーの原因である場合、どうすれば にそのmscoree.dllことを教えてもらえますか?

原因が別の場合、どうすれば .NET にそれを教えてもらうことができますか?

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

c++ - ccwアルゴリズムの説明

ccw (反時計回り) アルゴリズムを理解するのに問題があります。

このコードは、2 つの線が交差するかどうかを確認するために使用されます。

intersect 関数内のコードは理解できますが、ccw 関数内のコードはよくわかりません。

外積を使用しないのはなぜですか?

0 投票する
0 に答える
90 参照

c# - .net Com Callable Wrapper にヘルプを追加するにはどうすればよいですか?

.net 敵対的であるが COM フレンドリーな言語/開発環境によっても消費される必要がある .net アセンブリがあります。.net アセンブリには、標準の xml コメント機能を使用して、メソッド/プロパティ/クラスのヘルプが埋め込まれています。必要なのは、このヘルプを .net API からアセンブリの COM Callbable Wrapper のユーザーに伝達する方法です... .net API の更新時に余分なメンテナンスを行う必要はありません。

これは当然のことのように思えますが、残念ながら、MS CCW 世代はヘルプ ファイルを生成したり、ヘルプ ファイル リンクを指定するためのアセンブリ属性を認識したりしません。どうやら Sand Castle のようなツールは、その IntelliSense コメントからアセンブリのヘルプ ファイルを生成できるようですが、CCW をそのヘルプ ファイルにリンクする方法に問題が残っています。

次のような方法で論理的に可能であると考えています。

1) アセンブリからタイプ ライブラリを生成する

2) タイプ ライブラリを IDL に変換します (どのように OLEView が行うようです)

3) helpfile、helpcontext、および helpstring 属性を IDL ファイルに追加します。

4) IDL から TLB を再コンパイルする

5) ヘルプを参照する TLB を使用して CCW を再生成します。

残念ながら、そのプロセス (特に a. と b.) にゼロから取り組むことは、.net ヘルプの手動コピーを含む CCW の周りに手動で作成された環境固有のラッパーの作成と保守に比べて節約できるよりも多くの作業になります。

この問題に既に対処しているツールを知っている人はいますか?