問題タブ [com]
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# - C# で "アウト オブ プロセス" COM サーバーを実装するにはどうすればよいですか?
C# で記述された「アウト オブ プロセス」COM サーバーを実装しようとしています。どうすればいいですか?
.NET ランタイムをメイン プロセス空間にロードできないため、C# コードをメインの C++ アプリケーションから "out of proc" にする必要があります。
理由:
私の C++ コードは、多くの異なる顧客 EXE にロードされる DLL 内にあり、そのうちのいくつかは異なるバージョンの .NET ランタイムを使用しています。1 つのプロセスにロードできるランタイムは 1 つだけなので、私の最善の策は、C# コードを別のプロセスに配置することです。
com - COMException "ライブラリが登録されていません。" System.DirectoryServices の使用中
Windows 2000 の .NET 2 フレームワークで を使用しているときに、Windows フォーム アプリケーションで次のエラーを受け取り始めたばかりSystem.DirectoryServices
です。
フレームワークを再インストールして再登録activeds.dll
しましたが、問題は解決しません。別のdllを見つけて再登録する必要があると推測していますが、これがどのdllになるかは明確ではありません。
.net - .NET によって生の COM および DCOM プログラミングが不要になりましたか?
.net フレームワークの導入により、COM および DCOM での生のプログラミングは冗長になりましたか?
(System.EnterpriseServices 名前空間を介したトランザクション管理など、一部の COM+ サービスを使用する場合を除く)
winapi - 非表示のウィンドウ アプリケーションからダイアログを表示するにはどうすればよいですか?
WTL モーダル ダイアログを表示する Edit() メソッドを実装する COM コンポーネント (dll) を開発しました。
この COM コンポーネントへの完全なインターフェイスは、化学プロセス業界で使用されているソフトウェア標準 (CAPE-OPEN) に対応しており、その結果、この COM コンポーネントは、私が制御できないさまざまなサードパーティの実行可能ファイルで使用できるようになっています。
私のコンポーネントは、これらの EXE の多くで期待どおりに動作しますが、特に 1 つの場合、ダイアログが表示されずに Edit() メソッドがハングします。
::MessageBox()
ただし、ダイアログが表示される直前に呼び出しを行うと、DoModal()
最初に MessageBox を表示した後に正しく動作します。
この問題は、この特定の EXE が「隠しウィンドウ アプリケーション」として実行されていることに関係している可能性があるのではないかと疑っています。
::GetConsoleWindow()
ダイアログの親としてNULL と戻り値の両方を使用しようとしましたが、どちらも機能しませんでした。
ダイアログ自体は ATL/WTL CPropertySheetImpl です。
問題の親アプリケーション (EXE) は、(やや敵対的な) サード パーティによって開発されているため、私の手に負えません。
::MessageBox()
COM コンポーネントから標準の Windows ファイル ダイアログを正常に呼び出したり、表示したりできることはわかっています。実行後、カスタム ダイアログを表示できるようになります。最初に「標準」ダイアログを表示しないと、カスタム ダイアログを表示できません。
不要な MessageBox を最初に表示せずにダイアログを表示する方法を誰かが提案できますか? この EXE が同じインターフェイスに対応する他の COM コンポーネントからのダイアログを表示するのを見たので、それが可能であることはわかっています。
c# - OpenOffice で簡単な差し込み印刷を行う方法
C++、VBScript、VB.Net、または OLE またはネイティブ API 経由の C# を使用して、OpenOffice で簡単な差し込み印刷を行う必要があります。利用可能な良い例はありますか?
.net - .NETプロジェクトで参照されているCOMdllの正しいバージョンを維持する
.NETプロジェクトでCOMDLLを参照したいのですが、作成された相互運用機能DLLのバージョンが正しいことを確認したいと思います(パッチがDLLをいつ変更する必要があるかを認識できるようにするため)。
使用する場合はフラグを使用TlbImp
して必要なバージョンを指定できますが、/asmversion
Visual Studioから直接追加すると、元のCOMDLLのバージョンとは関係のないバージョンが取得されます。
.vcproj
ファイルのバージョンを変更してみました
しかし、プロジェクトは次のエラーでビルドに失敗しました。
エラーCS0246:タイプまたは名前空間名'MYDLLLib'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)
TlbImp
すべてのCOM参照を事前に作成せずにこれを実行する方法はありますか?
答えが「はい」の場合、メジャーバージョンとマイナーバージョンに加えてビルド番号を指定する方法はありますか?(例:1.2。42 .0)
javascript - ActiveX オブジェクトから JScript に文字列の配列を返す方法
一連の文字列を取得するには Win32 API を呼び出す必要があり、これらの文字列の配列を JavaScript に返したいと考えています。これは、Web ブラウザ用ではなく、管理スクリプト用にローカル マシンで実行されるスクリプト用です。
COM オブジェクトの IDL ファイルには、次のように呼び出しているインターフェイスがあります。
関数は正しく戻りますが、文字列が JavaScript の変数に割り当てられると「失われます」。
問題は、JavaScript 変数に返される文字列の配列を取得する適切な方法は何ですか?
windows - COMエラーコードに関する情報の最良の情報源は何ですか?
あなたが持っているのがHRESULTだけである場合、COMエラーを解決するための意味、考えられる原因、および考えられる解決策についての最良の情報をどこで入手できるかについて、私は途方に暮れています。
「80004027」のような用語をGoogleで検索すると、90%の確率で「80004027とはどういう意味ですか?」というランダムなディスカッショングループに移動するため、ほとんど役に立ちません。答えられません。
このための良いリソースは何ですか?MSDNがGoogleの上位の結果ではないのはなぜですか?
c# - C# で記述されたマネージド OleDB プロバイダー
OleDB プロバイダーは、Microsoft が提供する COM インターフェイスを実装するバイナリです。そのことから、C# を使用してプロバイダーを作成することは可能であると思われます。あれは正しいですか?それを示すサンプルはありますか?そうでなければ、私がそうするのを思いとどまらせてくれませんか? 管理されていないサンプルが複数あるようですが、管理されているサンプルが見つかりません。
c# - MapPoint 2009 ロード パフォーマンス
MS MapPoint 2009 を C# の WinForms .Net 2.0 アプリケーションに統合する際に問題が発生しています。ActiveX MapPoint コントロールをフォームに追加しましたが、マップと場所を表示するのに問題はありません。私の懸念は、作成されたマップをロードするのにかかる時間です。
私の開発マシンでのテストでは、アプリケーションが完全にロックされている間、平均ロード時間が 3 ~ 5 秒であることが示されました。これは完全に受け入れられないわけではありませんが、アプリケーションの制御を失うには非常に長い時間がかかります. また、GUI スレッドがロックされているため、読み込みダイアログなどを表示して読み込み時間を隠すことができません。
ハングする行は次のとおりです: (axMappointControl1 は MapPoint コントロールです)
別のスレッドで NewMap メソッドを実行しようとしましたが、GUI スレッドがブロックされてしまいます。
私の質問は次のとおりです。
- MapPoint の読み込みを高速化するにはどうすればよいですか?
- GUI スレッドをブロックしないように MapPoint をロードする方法はありますか?
どんな助けでも大歓迎です。