問題タブ [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 に答える
437 参照

c# - 完全なオブジェクト モデルを返すアンマネージ C++ からの C# メソッドの呼び出し

私はC#で次のようなものを持っています:

このオブジェクト モデルをアンマネージ C++ に渡したいと考えています。つまり、「GetClassA() : ClassA」などのアンマネージ C++ コードからの呼び出しがあります。

これまでのところ、マネージ C# からアンマネージ C++ に (COM/CCW を使用して) 単一のオブジェクトまたはオブジェクトの配列を渡すことはできましたが、内部に ClassB を含む ClassA を渡すことはできませんでした。

私の質問は次のとおりです。

  1. その中に ClassB 配列がある ClassA を返すにはどうすればよいですか?
  2. これまでのところ、C# から構造体を返すことしかできませんでした。上記の例は、私が実際に戻したいクラスです。つまり、データへの参照です。

明確にするために、アンマネージ コードはマネージ コードを呼び出します。

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

.net - .NET COM呼び出し可能ラッパーDLLの登録/使用のトラブルシューティング方法は?

C#.NETComの呼び出し可能なラッパーDLLを作成しました。私はStrongNameで署名し、コードベースとtypelibを64ビットのregasm.exeに登録しました。登録とすべてのコントロールのメソッドは、64ビットのOleViewerで表示できます。ただし、64ビットの\ Windows \ System32 \ cscript.exeからコントロールを使用しようとすると、次のようになります。

これにより、エラーが発生します。

Microsoft VBScriptランタイムエラー:ActiveXコンポーネントはオブジェクトを作成できません:'MyCompany.LoggerControl'

SysutilsのProcMonを使用してこれを追跡すると、次のことがわかります。

1:41:44.8295486 PM cscript.exe 24028 RegOpenKey HKCR \ MyCompany.LoggerControl
名前が見つかりません目的のアクセス:読み取り

ただし、このキーはRegeditに存在します。呼び出しプロセスは、管理者特権のコマンドプロンプトから実行されています。セキュリティ上の問題である場合、エラーは「NAMENOTFOUND」ではなく「ACCESSDENIED」にすべきではありませんか?

このタイプのCOM制御登録エラーを追跡するための他のツールは何ですか?

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

.net - PLC コンポーネントでの COM 呼び出し可能ラッパーの使用

Motorolla ベースのプログラマブル ロジック コントロール (PLC) デバイスがあり、IEC-61131 構造化プログラミング言語を使用してコードを記述しています。問題は、複雑な計算を行う必要があることです。そのため、COM Callable Wrapper でコードを記述しようとしています。問題は、.NET フレームワーク上で開発された CCW でコーディングされた機能にアクセスして、Motorola ベースの PLC デバイスにアクセスすることは可能ですか??

要するに、私が聞きたいのは、この CCW が .NET Framework 以外のデバイスでアクセスできるかどうかということです??

事前にどうもありがとうございました。

よろしくイルファン

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

.net - COM Callable Wrapper は .NET 2.0 では動作しますが、.NET 4.0 では動作しません

既存の COM コンポーネントを新しい機能に置き換えるために、概念実証の COM Callable Wrapper を作成しました。私のプロジェクトの制約は、呼び出しコードを変更できないことです。呼び出し元のコードは、COM 呼び出し可能ラッパーの存在を認識しない必要があります。私が作成した小さな概念実証ソリューションは、呼び出しコードが .NET 2.0 の場合は機能しますが、呼び出しコードが .NET 4.0 の場合は InvalidCastException で失敗します。この .NET 4.0 固有の原因を発見するのを手伝ってくれる人はいますInvalidCastExceptionか?

COM 呼び出し可能ラッパー:

呼び出しコード (new行で例外がスローされます):

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

.net - .NET から VB6 フォームを呼び出すと、フォームの操作がブロックされますか?

VB6 exe としてコンパイルされた VB6 プロジェクトがあります。

起動オブジェクトとして単純なフォームを持っています。

regasm された .NET dll を介して .NET モーダル フォームを起動し、コールバック COM インターフェイス (IHandler) の実装を渡します。

.NET は VB6 の IHandler 実装にコールバックします。

VB6 は、vbModal を使用して新しいフォームを表示しようとします。VB6 フォームは、モーダル .NET フォームがまだ表示されているため、操作がブロックされています。

これまたは推奨されるアプローチを回避する方法はありますか?

新しい (STA) (マネージド) スレッドで VB6 にコールバックしようとしましたが、MyCallbackForm.Show vbModal を実行しようとすると、「無効なプロシージャ コールまたは引数です。」というメッセージが表示されます。新しいスレッドでコールバックしていること...


更新: VB6 プロジェクト タイプを ActiveX exe に設定した場合、新しいスレッドでコールバックを正常に作成し、VB6 フォームをモーダルに表示することができました...しかし、それを行うと、コールバックでスレッドが失われたように見えました。 VB6 から .NET へのその後の呼び出しで、クロス スレッド例外が発生しました。これは、ActiveX exe を使用するときのスレッド モデルに関係していると思います。

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

eclipse - CounterClockwise と Eclipse を使用した Clojure REPL での評価

私は通常 Emacs を使用しますが、CCW + Eclipse をもう一度試してみることに触発されました。次の内容のソース ファイル src/user.clj を含む Clojure テスト プロジェクトがあります。

Window->Show View->Other->Clojure Views->REPL で開始した REPL があります。

println 式 ('(println "hi")' のすべて) を選択して Command-enter キーを押すと、式自体は REPL ウィンドウに表示されますが、出力は行われません。'(take 10 (range))' のような表現も同様です。

REPL に式を直接入力して Enter キーを押すと、

しかし、評価の追加出力はないようです。

アイデアをありがとう。ドキュメントに目を通しましたが、明らかなことは何もありませんでした。

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

c# - .net DLLのcomラッパーがもう1つの依存する.netDLLを使用する場合、それらをGACに配置する必要がありますか?

管理対象DLLが1つ以上の管理対象DLLを使用し、comラッパーが管理対象DLLを中心に構築されている場合、依存するすべての管理対象DLLをGACに配置する必要があります。同様のシナリオで「アセンブリが見つかりません...」というメッセージが表示されます。

前もって感謝します。

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

sorting - ポリゴンの頂点を CCW または CW 方向に並べ替える

多角形を定義するエッジと頂点のセットがあります (必ずしも凸状である必要はありません)。頂点とエッジはランダムな順序であり、このポリゴンの頂点を時計回り (または反時計回り) にソート/順序付けしたいと考えています。

これをどのように達成できるか考えていますか?

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

clojure - RingハンドラでREPLウィンドウに出力するには?

printlnハンドラーでは機能しないようです。REPL ウィンドウに書き込むにはどうすればよいですか?

私は反時計回りで日食を使用しています。

編集:これはnrepl issueのようです。(future (println "foo"))は問題ありませんが、 では出力がありません(.start (Thread. #(println "foo")))