問題タブ [atl]

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

visual-studio - 新しい ATL プロジェクトで属性を使用するオプションが Visual Studio 2008 から削除されたのはなぜですか?

これは、MSDN のコメントからのテキストです。

しかし、なぜ?!!

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

c++ - Internet Explorer が ActiveX コントロールを適切にアンロードできないのはどのような状況ですか?

作成中の ActiveX コントロールで複雑な問題が発生しています。Internet Explorer が、プロセスのシャットダウン時にコントロールを適切にアンロードできないように見えることがあります。これにより、コントロール インスタンスのデストラクタが呼び出されなくなります。

コントロールは C++ で記述され、ATL を使用し、Visual Studio 2005 を使用してコンパイルされます。コントロール インスタンスのデストラクタは、ユーザーがコントロールが埋め込まれているページから離れてブラウズするときに常に呼び出されます。問題は、ブラウザが閉じられている場合にのみ発生します。

デバッガーで IE を実行しても異常は見られません - デバッガーは例外、アクセス違反、またはアサーションの失敗をキャッチしませんが、問題はまだ残っています - コントロールのデストラクタにブレークポイントを設定できますが、決してブラウザを閉じるとヒットします。

さらに、コントロールの複数のインスタンスを埋め込んだ単純な HTML ページをロードしても、問題は見られません。この問題は、Web ページに動的にタグを挿入する Web アプリケーションからコントロールがインスタンス化された場合にのみ発生するようです。しかし、これはデータに依存しているため、IE の問題である可能性があることを示しているようです。

デバッガーで簡単なテスト ケースを実行すると、コントロールのデストラクタにブレークポイントを設定でき、毎回ヒットします。これにより、コントロール自体の問題が除外されると思います(たとえば、インターフェースリークのように、デストラクタが呼び出されないようにするエラーなど)。

私はほとんどのテストを IE 6 で行っていますが、IE 7 でも問題が発生するのを見てきました。IE 8 はテストしていません。

私の現在の作業仮説は、動的 HTML コードに、ブラウザーが ActiveX コントロールのインターフェイスをリークさせる何かがあるというものです。これまでのところ、これをアプリケーションの外部で再現する優れたテスト ケースを作成できませんでした。また、アプリケーションが大きすぎて、適切なテスト ケースを作成できませんでした。

この種の動作を引き起こすことが知られている IE のバグの可能性について、誰かが洞察を提供できることを期待していました。ちなみに、以下に示す回答は一般的すぎます。これを引き起こすことが知られている特定の状況を探しています。きっと誰かがこれを前に見たことがあるでしょう。

0 投票する
5 に答える
40138 参照

c++ - Visual Studio C++ Express 2008 に WTL と ATL を追加する方法

自宅で Visual Studio C++ Express 2008 を使い始めましたが、ATL がありません。
Visual Studio C++ Express 2008 に ATL を追加するにはどうすればよいですか?

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

c++ - C++ での COM イベントの発生 - 同期または非同期?

MS ATL ライブラリを使用して記述された ActiveX コントロールがあり、pDispatch->Invoke(..., DISPATCH_METHOD). コントロールは .NET クライアントによって使用されます。私の質問はこれです。イベントの発生は同期呼び出しですか、それとも非同期呼び出しですか? 私の懸念は、同期の場合、イベントを処理するアプリケーションがすぐに返されない限り、パフォーマンスの問題を引き起こす可能性があることです。

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

c++ - CAtlMap を反復処理して要素を選択的に削除する for ループを作成するにはどうすればよいですか?

無効なPOSITIONなどに対処するための特別なケースコードをあまり使わずに、次のことをしようとしています:

空白を埋める最良の方法は何ですか?

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

c++ - ATL/WTL では、引き続きグローバル _Module 変数を使用する必要がありますか?

新しい ATL/WTL プロジェクトを開始したばかりですが、グローバル _Module 変数がまだ必要かどうか疑問に思っていました。

私が WTL を使い始めた数年前、(少なくとも ATL 3.0 では) 次のようなグローバル変数を定義する必要がありました。

ATL が正しく機能するようにします。しかし、最近、これはもう必要ないかもしれないということをどこかで読みました (それでも、ウィザードで生成されたコードはまだそれを使用しています)。また、Visual C++ のインクルード ディレクトリを検索したところ、いくつかの場所 (特に ATL COM レジストリ) で _Module しか検出されませんでした。

最近では、ATL を使用するためにグローバル変数を定義する必要がありますか?

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

c++ - Win2K/XPのディレクトリの書き込み権限をチェックするためのコード

ご挨拶!

C++を使用してWindowsMFC/ATLプログラム内からディレクトリの書き込み許可を確認しようとしています。私の最初の推測は、C標準の_access関数を使用することです。例:

しかし、どうやらWindows 2000とXPでは、_accessはディレクトリのアクセス許可を決定できません。(つまり、エクスプローラでディレクトリを右クリックしたときの[プロパティ]ダイアログの[セキュリティ]タブ)では、WindowsC++ライブラリのいずれかを使用してWindows2000/ XPでディレクトリの書き込み権限を決定するための洗練された方法はありますか?もしそうなら、どのように?

ありがとう

エヴァン

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

c++ - ATL のリソース ファイルでコントロール ID が見つからないのはなぜですか?

アプリでフォーカスされているコントロールに応じていくつかのチェックを行う必要があるため、次のようにフォーカスされたコントロール ID を取得しています。

一貫した ID を取得していますが、リソース ファイルでそれらを見つけることができません! 取得している ID を信頼できますか?

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

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

c++ - ATL C++ クライアントから Axis2 Web サービスを呼び出す

Tomcat5.5 で Axis2 を使用して発行された単純な POJO Web サービスがあり、ATL C++ クライアントでそれを使用しようとすると失敗します。C# クライアントで同じことをするとうまくいきます。問題は、ATL クライアントが次のような SOAP 本体を送信することです。

真ん中の無効な要素に注目してください。C#はヘッダーを送信するため、UTF-8と関係があると思われます

ATL クライアントはそうではありません。また、ATL SOAP 内部の一部を調べると、構造体に szName と szwName の 2 つのメンバーがあることに気付きました。1 つ目は空で要素を生成し、2 つ目は testResponse という有効な (?) 名前を持っています (呼び出しているメソッドは「test」と呼ばれます)。

ここからどこへ行くべきかアドバイスが必要ですか?

詳細: ATL クライアントからの完全なメッセージ:

Axis2 からの応答:

ああ、これが C# クライアントからの適切な要求です。

C# の場合、soap:body は空白です。

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

.net - その COM オブジェクトを使用して、C++/COM ライブラリに実装された DIB を .NET クライアントに取得する方法

DIB を返すメソッドを含む C++/ATL で実装された COM オブジェクトがあります。この COM オブジェクトを使用する .NET アプリケーションも作成しています。両方を書いているので、COM オブジェクトからこの DIB を返す最善の方法を自由に決めることができます。明確にするために、ネイティブ Windows ハンドルを DIB またはバイト配列に返すのが最善でしょうか、または Windows DIB を .NET Image オブジェクトに簡単に移行する他の方法はありますか? そして、その質問に関連して、これが返された DIB を取得したら、どうすればそれを .NET Image オブジェクトに入れることができますか?