問題タブ [c++builder-2010]

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

c++ - C ++ BuilderでITaskbarList3を作成するにはどうすればよいですか?

Windows 7で導入されたITaskbarList3インターフェイスを使用して、タスクバーアイコンに長いタスクのタスクの進行状況を表示できるようにしようとしています。ドキュメントには、ITaskbarList3コンポーネントを初期化する前に、TaskbarButtonCreatedメッセージを待つ必要があると記載されていますが、TaskbarButtonCreatedメッセージが表示されないようです。

これが私がこれまでに持っているものです:

TaskbarButtonCreatedのカスタムメッセージIDを格納するためのグローバル変数が.cppファイルにあります。

新しいメッセージを処理するために、別のWndProc関数を作成しました。

私のフォームコンストラクターでは、最初の行でWindowProcプロパティをWndProcExtに設定して、メッセージをルーティングします。また、ChangeWindowMessageFilterを投げて、TaskbarButtonCreatedメッセージが何らかの理由でフィルタリングされているかどうかを確認しました。

デバッガーでは、ChangeWindowMessageFilterExからの戻り値は常にtrueです。また、WndProcExt関数が、探しているものだけでなく、あらゆる種類のWindowsメッセージを受信することを確認しました。OnTaskbarBtnCreated関数が呼び出されることはありません。

私は一歩を逃していますか?メッセージハンドラーの準備が整う前に、メッセージがフィルターで除外または送信されていますか?

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

com - C++Builder 2010 で CComHeapPtr がありませんか?

Embarcadero C++Builder 2010 でCComHeapPtrスマート ポインターを使用しようとしていますが、提供されているヘッダーのいずれにも定義が見つかりません。そして、私はこのエラーを受け取ります。

入っていませんatlbase.h(atlalloc.h完全に欠落しているようです)。

これを使用して、ItemIDListから返された を例外的に安全に解放するつもりでしたIShellFolder::ParseDisplayName

それはこのバージョンに存在しますか、それとも C++Builder は非常に古いバージョンの ATL を使用しているだけですか?

そして、自分で転がす以外に、より良い代替手段はありますか?

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

c++builder - 別のスレッドでフォームを実行する

私がフォームFooを持っているとしましょう。独自のスレッドで実行され、メイン アプリケーション スレッドが他の処理でビジーであっても更新されるインスタンスを作成するにはどうすればよいですか? たとえば、ネットワーク通信のブロックなどを処理します。

私は基礎を理解しており、新しいスレッドを作成する必要があること、そのスレッドでフォームインスタンスを作成する必要があることなどを理解しています。

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

compiler-construction - Embarcadero C++ Builder 2010 - コンパイル

Embarcaedro C++ Builder 2010 を数週間使用していますが、コンパイル プロセスに問題があります。

まず、編集されていないすべてのソース ファイルを C++ Builder が再コンパイルしないようにする方法を知っている人はいますか? 次に、プロジェクトに実際に含まれているよりも多くのコード行をコンパイラがコンパイルするのはなぜですか? コンパイル時間が大幅に増加します。

私は答えを満足させずにウェブを閲覧しました。私は試した :

  • オブジェクトファイルを保持する
  • プリコンパイル済みヘッダーを無効にする
  • インクルード (ヘッダーとライブラリ) を使用頻度の高いものから順に整理する
  • ...

何千行ものコードを含むプロジェクトに取り組んでいるため、コンパイル プロセスが完了するまでに長い時間がかかります.どこかで何か問題がある可能性があります..

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

c++ - TStringList C++ ビルダー アクセス違反

TStringList特定のアイテムが存在する場合にのみ、特定のアイテムにアクセスしようとしています。

これによりアクセス違反が発生するのはなぜですか? また、どうすれば解決できますか?

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

c++builder - 実行時に MainForm を変更する

実行時にアプリケーションの MainForm を変更するにはどうすればよいですか?

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

c++ - 古いコードからの右辺値参照の無効な使用: 最新の正しい使用法に更新するにはどうすればよいですか?

大規模なプロジェクトを C++ Builder 2010 から XE4 に移植していて、このコードを見つけました。CB2010 でコンパイル、実行、動作したようです。リビジョン ログによると、C++ Builder 2007 をまだ使用していたときに追加されました。 これらのコンパイラはどちらも右辺値参照をサポートしていませんでした。

2 つの注意事項:

  • operator=コピー元オブジェクトの変更は意図的なものです。このクラスは、一度に 1 つのオブジェクトのみが所有できるリソースをラップします。この質問の範囲を超えていますが、動作は奇妙ですが、設計どおりです。コピー コンストラクターと、同様に変更された他のいくつかのメソッドもあります。メソッドは、コピー元のオブジェクトが無効になる (破棄されるなど) か、新しいものを保持するために再利用される場合に使用することを目的としています。static_cast<void*>ポインターを同じタイプのオブジェクトと比較するために必要な理由がわかりません。私には、それは非常に奇妙なことのように思えます。
  • コードは、標準参照 (つまりVOperandValue& oOther) から右辺値参照に変更されました。右辺値参照のサポートは、C++Builder 2010 以降のバージョンである C++Builder XE にのみ追加されましたが、コンパイラは喜んでそれを受け入れてコンパイルし、コードは実行時に機能しているように見えました。

このコードが XE4 に読み込まれるCopyAndTakeOwnershipFrom(oOther)と、次のエラーでコンパイルに失敗します。

[bcc32 エラー] OperandValue.cpp(178): E2559 タイプ 'VOperandValue' の左辺値でタイプ 'VOperandValue' の右辺値参照を初期化できません

[bcc32 エラー] OperandValue.cpp(178): E2342 パラメーター 'oOther' の型が一致しません ('VOperandValue &&' が必要で、'VOperandValue' を取得しました)

CopyAndTakeOwnershipFrom(oOther);(178行目は行であり、メソッドパラメータリストで右辺値参照として定義されているように見えるため、これらのエラーはわかりませんoOther。渡すときに左辺値の非r-refで問題が発生するのはなぜですか同じ変数?)

質問は 2 つあります。1 つは実用的な質問で、もう 1 つは好奇心に関する質問です。

  1. プライマリ:このコードを標準参照から右辺値参照に変更したコーダーは、この状況ではムーブ セマンティクスが最適であると考えて変更したと思われます。割り当てにはポインター値のコピーのみが含まれますが、これはそれほど面倒ではありません。 それらが適切である場合、このコードに右辺値参照を正しく使用するにはどうすればよいですか?

  2. 二次: (好奇心のみ。) 2007 および 2010 のコンパイラは、このコードから何を作成しましたか? 参照への参照として読まれましたか?2 つの&演算子が合体して 1 つの参照になりましたか? おそらく無効な構文であるにもかかわらず、コンパイルして正常に動作したため、一体何をしていたのでしょうか?

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

c++ - キーと値のペアを作成 Borland C++

Borland 2010 C++ で辞書を作成しようとしています。

エラーが発生しました: [BCC32 エラー] Generics.collections.hpp(542): E2347 プロパティ項目の読み取りアクセス指定子でパラメーターが一致しません

私は何を間違っていますか?

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

c++builder - VCLFixPack.pas を追加する際のさまざまなリンクの問題

VCLFixPack.pas (2013 年 9 月 27 日時点で最新) をプロジェクトに追加すると、一部のプロジェクトで奇妙なリンク エラーが発生します。正常にコンパイルされるものもありますが、リンク時にTYPES.OBJDBGRIDS.OBJなどが見つからないと文句を言うものもあります。

問題は何ですか?

VCLFixPack はここにあります

http://andy.jgknet.de/blog/