問題タブ [atlcom]
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++ - BSTR から DATE への変換方法
動作していないようです。どんなアイデアでも大歓迎です。ありがとう。
visual-c++ - あるプロセスから別のプロセスに COM ポインタを渡す方法は?
プロセス 1 内に存在する COM オブジェクトへのインターフェイス ポインターがあります。別のプロセスから同じオブジェクトにアクセスしたいと考えています。どうすればこの目的を達成できますか? アドレス空間が異なるため、ポインターを直接渡すことは機能しないと思います。マーシャリング/プロキシ/スタブが関係していることは知っています。でも詳細はわかりません。
従うべき手順と呼び出す関数に関する詳細な指示を誰かが提供できますか? どうもありがとう。私は COM オブジェクト自体の設計者ではありません。私はちょうどそれを使用しています。
c++ - 64ビットCOMプロキシを生成する方法
32ビットのCOMサーバー(およびそのソースコード)があります。ソースはサーバーと32ビットのプロキシスタブを生成します。(MIDLコンパイラはプロキシスタブコードを生成します。)
64ビットのプログラムが32ビットのCOMサーバーと通信できるように、64ビットのプロキシも作成したいと思います。
32ビットプロキシを32ビットプロセスと通信する64ビットプロキシに変換するにはどうすればよいですか?/ D:_M_AMD64で再コンパイルするだけでは不十分だと思います。
winapi - ATL で匿名 IDispatch 関数を作成する方法は?
IDispatch から派生し、次のように API に渡すことができるクラスを作成する簡単な方法はありますか (これは C++ です):
値 0 の dispid で呼び出しを処理する C++ オブジェクトを作成する方法は知っていますが、すべての IDispatch を手動で実装するのは常に少し面倒です。かなり一般的であるため、ATLには標準的な方法があるかどうか疑問に思っていました。
visual-c++ - ATL: COM インターフェイスからメソッドを削除できません - 魔法のように常に再表示されます
環境: VS2008、C++ ATL COM、64 ビット、Windows 7
古い COM インターフェイスからメソッドを削除しようとしています。*.idl を変更し、関連する *.h および *.cpp 実装ファイルを変更し、メイン プロジェクトの .h ファイルからも削除します。プロジェクト全体で古いメソッド名を検索できます-表示されず、コンパイル/リンクは正常に行われます。ただし、オブジェクト ブラウザを使用してコンパイル済みの DLL を確認すると、dang メソッドがまだ残っています。.NET プロジェクトで DLL を「参照」すると、メソッドが表示されます。.NET コードがメソッドを使用しようとすると、メモリ例外が発生します (これは理にかなっています)。IDL を変更し、メソッド コードを削除し、結果としてコンパイルされた DLL を正しくする方法を理解することはできません。
メソッドが潜んでいるのは一体どこで、既存の ATL 生成 COM インターフェイスからメソッドを削除する別の方法はありますか? 私は困惑しています!ありがとう!
visual-c++ - VS 2008 atlcom.h ClassesAllowedInStreamが定義されていません(パラメーターを変換できません)
VC ++ 2008でプロジェクトをビルドしようとしていますが、次のエラーが発生します。
誰か助けてもらえますか?
c - SafeArrayPutElementについて
参考までに、私はCOM\ATLとUnicodeの初心者です
私はSafeArrayPutElement(safearray*,LONG,void*)
自分のコードで使用していますが、問題は...
L"ItWorks"
ここでは、3番目のパラメーターをieとして指定すると、関数は正常に機能します。
しかし、私が使用する場合
この関数は失敗しますE_OUTOFMEMORY
ここで必要なのは、char*
変数に文字列があることです。これを上記の関数の3番目のパラメーターとして使用する必要があります。誰かがこの点で私を助けてくれますか?
TIA
Naveen
windows - Windows サービスから ATl COM を使用する方法
VS2008 ウィザードを使用して、サービスを作成しました (現在、開始と停止以外は何もしません)
(プロセス外の) COM オブジェクトを使用したい
#import "object.tlb" を追加すると、再コンパイルにより
エラー C2812: #import は /clr:pure および /clr:safë ではサポートされていません
/clr (純粋でも安全でもない) を使用するようにプロパティを変更すると、コンパイルは可能になりますが、サービスのインストールは "Ättempt to load an unverifiable executable with fixups" で失敗します。
アドバイスをいただければ幸いです
ピーター
c++ - クロージングタイマーは作業スレッドから処理します
質問をする最良の方法は、最初に例を示すことです。
これは私がc++でタイマーを作成する方法です:
次のコールバックがトリガーされると(TsSampleStarvationTimeBomb_Static)、その特定のスレッド内のキューハンドルとタイマーのハンドルの両方を強制終了しようとします。
私の質問は:それは有効ですか?次の削除関数がI/Oエラーを返す可能性があることを、MSDNで読みましたが、あまり気にする必要はありません。コールバックスレッドが自動的に署名されると、それらの終了が実行されます。
私は正しいですか?ありがとう!
c++ - Excelに関数を追加するATL COM
C++ クラスを使用して ATL COM を構築し、オートメーションによって Excel に追加しようとしています。いくつかのガイドを見つけましたが、多くの問題があります。1 つは、私の dll がオートメーションで比較されないことです。追加しようとすると、サーバーが含まれていないか、アクセス許可がないという問題があると Excel に表示されます。誰かガイドをくれませんか?Visual Studio 2012 を使用しています。ありがとうございます。