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

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

c++ - c++ インジケータ / ローディング ホイール

RAD Studio 4 C++ ビルダーを使用しており、データ ソースが DB からデータを取得している間にインジケーター ホイールを表示したいと考えています。FireMonkey にはインジケータ ホイールがあることは知っていますが、c++ ビルダーにはそのようなコンポーネントがないようです。

私が使用できるコンポーネントを知っている人はいますか?

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

c++builder - 最新の C++Builder アプリケーションでプリコンパイル済みヘッダーを使用するためのベスト プラクティスは何ですか?

現在、大規模な RAD Studio 2010 プロジェクトを XE4 に移行しています。その一環として、多くのプロジェクト ファイルを再作成しています。プリコンパイル済みヘッダーに最適なメカニズムを使用していることを確認する機会を利用したいと思います。これを行うにはいくつかの方法があるようです。

現在は 32 ビットのみでコンパイルしていますが、将来的には 64 ビット コンパイラを使用する予定です。

2010 年に現在行っていることと、XE4 で何をすべきかわからない理由を次に示します。

RAD Studio 2010 で

およびその他の一般的に使用される多くのヘッダーファイルPchApp.hを含むファイルがあります。主に、プロジェクトで一般的に使用されるさまざまなコア クラスのヘッダーです。このヘッダーは、次のように、<vcl.h>すべての CPP ファイルの先頭に含まれ、その後に.#pragma hdrstop

次に、プロジェクト オプションの [プリコンパイル済みヘッダー] セクションで次の設定を行います。

現在の RS2010 プリコンパイル済みヘッダー設定

コンパイルは特に高速ではありません (約 350,000 行のコードで 12 分)。

  • 「プリコンパイル済みヘッダー ファイルを挿入する」: これは PchApp.h を挿入する必要がありますか?
  • 「プリコンパイル済みヘッダーをキャッシュする (-H または -H"xxx" と共に使用する必要があります)」: -H オプションは「PCH ファイル名」なので、それを使用していますが、確かにプリコンパイル済みヘッダーのポイントは、"キャッシュ」またはコンパイルごとに 1 回事前構築されます。これにより、どのような追加の違いが生じるでしょうか?
  • .cpp ファイルに PchApp.h とプラグマ hdrstop を含める 2 行が必要ですか? プロジェクトオプションでのみこれを行う方法はありますか?すべてのファイルでこれらの2行を複製しないでください? それらは必要ですか?

言い換えれば、これらが正しい設定か最適な設定かはわかりませんが、ドキュメントを読んでもどちらが良いかわかりません。私はすべてのオプションを十分に理解していないことを認識しています-この質問の1つの理由:)

RAD Studio XE4 で

XE4 32 ビット コンパイラのオプション ダイアログは同じですが、2 つのことが私を混乱させたり、現在の 2010 のアプローチが最適であるかどうかわからなかったりします。

1. デフォルトの動作

新しい VCL フォーム プロジェクトを作成するとき、IDE はデフォルトで Project1PCH1.h という名前のヘッダーを作成します。これは、プロジェクトのプリコンパイル済みヘッダーになることを目的としています。 このヘッダーには<vcl.h><tchar.h>が含まれており、Project Manager ではノードとして表示されます。これはデフォルトの Form1.cpp には含まれていませんが、Form1.cpp の一番上にあり、その後に他のヘッダーが続きます#include <vcl.h>#pragma hdrstop

このヘッダーを使用する新しいプロジェクトのデフォルトの XE4 設定ダイアログは次のとおりです。 XE4 のデフォルトのプリコンパイル済みヘッダー設定

私は(素朴に?)デフォルトが実際には最良/最適な設定であるという仮定に取り組んでいます。いくつかのことが私を困惑させます:

  • プロジェクトの想定されるプリコンパイル済みヘッダーProject1PCH1.hは、プリコンパイル済みヘッダー設定のどこにも記載されていません。
  • ヘッダーはキャッシュされません
  • PCH ファイル名が指定されていません (これはProject1PCH1.h?)
  • .cpp ファイルにはどちらも含まれていませんProject1PCH1.h

実際、私が見つけることができる方法で参照されていないため、コンパイラまたはIDEが実際に使用することになっていること、Project1PCH1.hまたは使用することになっている.cppファイルを実際にどのように認識しているかわかりません。

これは私にとって最も不可解なことであり、この質問をして、PCHes に関する私の混乱をすべて解消することに拍車をかけました。IDE のデフォルト設定をコピー/使用することを計画していましたが、その動作を理解するまでは使用したくありません。

2. PCH ウィザード

2010 年以降、IDE にはプリコンパイル済みヘッダー ウィザードが含まれています。私はそれを機能させることができませんでした-結果を取得し、「機能しない」という私の記憶を説明するために今もう一度実行していますが、数時間かかるようですので、この質問を更新します後で。

編集:数時間かかりますが実行され、(ソースベースを知っている私には)奇妙なヘッダーのリストが生成されます。数年前に試したときの記憶では、まったく実行されませんでした - 明確な改善です。

存在するため、2010 プロジェクトをアップグレードするために作成された新しく作成されたプロジェクト ファイルでプリコンパイル済みヘッダーを使用して設定するのが最善の方法かもしれません。どうすれば最善ですか?PchApp.h を含むすべての .cpp ファイルで混乱しますか?

質問

その背景として、次の質問があります。

  • 既存の設定。新しいプロジェクト ファイルを作成し、何千もの既存の .cpp ファイルを追加しています。すべて先頭に「#include PchApp.h; #pragma hdrstop」を付けています。既存の RS2010 PCH 設定をコピーする必要がありますか? 上記の 2 行を削除して、別のものに置き換える必要がありますか?
  • PCH ウィザードの使用:あなたの経験では、これは最適な設定を作成しますか? 変更された場合にプロジェクトの大部分が再構築される (おそらくコーディングには最適ではない) ファイルが含まれていますか? 既存のプロジェクトで使用することは可能ですか?それとも、使用する前に「#include PchApp.h」のようなアイテムを削除する必要がありますか?
  • CPP ファイル / ユニットと正しいインクルード。プリコンパイル済みヘッダーを使用する .cpp ファイルには、プリコンパイル済みヘッダー自体は含まれていませんが、.cpp が実際に必要とするヘッダーのみが含まれている必要があります (PCH に含まれている場合でも)。現在の状況で、PchApp.h ファイルにいくつかの一般的なヘッダーが含まれているため、.cpp ファイルにはそれら自体が実際には含まれていない場合はどうでしょうか? PchApp.h のインクルードを削除し、特定の .cpp ファイルが必要とする PchApp.h のヘッダーのサブセットに置き換える場合、#pragma hdrstop の上または下に配置する必要がありますか? (上記だと思います。)次に、プリコンパイル済みヘッダーに含まれていない上記の何かを含めるとどうなりますか-その特定のユニットのPCH使用を変更し、PCHを再構築します(パフォーマンスの問題?)など?
  • デフォルト設定:新しいプロジェクトのデフォルト設定が最適であると仮定すると、現在のシステムをそれを使用するように移行するにはどうすればよいですか?
  • デフォルト以外のセットアップ:デフォルトのセットアップが最適でない場合、それは何ですか? これが重要な質問だと思います。
  • 32 ビットと 64 ビット:まもなく 64 ビットに移行することを知っていますが、プリコンパイル済みヘッダーを 32 ビットと 64 ビットの両方で動作させるにはどうすればよいでしょうか? すべての PCH の知識は、.cpp ファイルではなくプロジェクト オプションに含まれている必要があるため、32 ビットと 64 ビットのコンパイルでは異なる設定が必要ですか?

ベスト プラクティス、設定オプション、.cpp ファイル、ヘッダー、および/またはプロジェクト ファイルに含める項目などを明確に説明する、明確で詳細な、説明的で、指針となる回答を求めています。つまり、何か今までに(上記のすべての後!)かなり混乱した理解を解決するために。将来、他の C++Builder ユーザーが PCH リファレンスとして使用できる高品質の回答は優れています。可能であれば、数日以内に報奨金を追加するつもりです。

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

msbuild - MSBuild が Cpp.Targets で 'True.dpr' を検索し、新しい XE4 プロジェクトで失敗する

RAD Studio XE4 のプロジェクトで奇妙なmsbuildエラーが発生しました。何が起こっているのかを診断するための助けを求めています。私はこれに数週間遭遇しましたが、自分で解決することに成功していません - もっと広く尋ねる時が来ました. 症状は次のとおりです。

  • IDE 内からビルドおよび実行されたプロジェクトでは、動作しているようにmsbuild Project.cbproj見えます
  • 実行msbuild Project.cbproj /t:Cleanすると動作し、中間ファイルを正常に削除します。出力を視覚的にスキャンしても、異常なファイルが削除されていることは示されません。.obj ファイル、リンカー状態ファイル、最終的な EXE などだけです。
  • ただし、クリーニング後またはクリーン チェックアウト時に実行msbuild Project.cbproj /t:Buildまたは単純に実行すると、次のエラー メッセージが表示されて失敗します。msbuild Project.cbproj

Microsoft (R) Build Engine バージョン 3.5.30729.5420 [Microsoft .NET Framework、バージョン 2.0.50727.5472] Copyright (C) Microsoft Corporation 2007. All rights reserved.

ビルドは 2013 年 12 月 9 日 10:35:03 に開始されました。ノード 0 のプロジェクト "C:\projects\Project.cbproj" (既定のターゲット)。

_PasDepCheck: 変更: Source\Common\resample.pas _PasCoreCompile: Embarcadero Delphi for Win32 コンパイラ バージョン 25.0 Copyright (c) 1983,2013 Embarcadero Technologies, Inc. C:\Program Files (x86)\Embarcadero\RAD Studio\11.0\Bin\ CodeGear.Cpp.Targets(191 1,5): エラー F1026: ファイルが見つかりません: 'True.dpr' プロジェクトのビルドが完了しました "C:\projects\Project.cbproj" (既定のターゲット) -- 失敗しました。

ビルドに失敗しました。

"C:\projects\Project.cbproj" (デフォルト ターゲット) (1) -> (_PasCoreCompile ターゲット) -> C:\Program Files (x86)\Embarcadero\RAD Studio\11.0\Bin\CodeGear.Cpp.Targets(1) 911,5): エラー F1026: ファイルが見つかりません: 'True.dpr'

これについていくつかのことが私を驚かせます:

  • 一番上に .Net の 2 つのバージョンがリストされており、古いバージョンは角括弧で囲まれています。2 つのフレームワークの一部をロードまたは使用している可能性はありますか?
  • True.dpr.cbprojまた、ファイルを手動で検索してエントリを見つけることも、プロジェクト名として誤解される可能性があるように見えるエントリを見つけることもできませTrue.dprTrue。(Delphi に慣れていない場合、.dpr ファイルは昔ながらのプロジェクト ファイルです。これにはエントリ ポイントが含まれています。ビルドすることは、msbuild がどこかでソースまたはプロジェクト エントリを見つけていることを意味する場合があります。「True」は . cbproj ファイルが誤って解釈されているか破損しています - しかし、それは真新しいため、そうあるべきではなく、IDE 内から動作します。)

システムとプロジェクトに関するその他の情報:

  • このプロジェクトは RAD Studio 2010 からアップグレードされています。ただし、プロジェクト ファイルは XE4でゼロから作成されたものです。つまり、IDE で新しいプロジェクトを作成し、既存のユニット (Delphi および C++ ファイル) を追加することによって、まったく新しいものです。
  • このプロジェクトは、1 つまたは 2 つの Delphi ユニットを含む C++ プロジェクトです。コンパイルの開始時に Delphi ユニットをコンパイルすると、落ちていることがわかります。C++ と Delphi の混合に慣れていない方のために説明すると、通常、混合ソース プロジェクトでは、IDE または msbuild が最初に Delphi ユニットをコンパイルします (そうすることで、C++ ヘッダーを作成/更新して、Delphi コードとインターフェイスを取ることができます)。
  • プロジェクトはグループの 1 つですが、スタンドアロンでコンパイルする必要があります。
  • Update 1 で RAD Studio XE4 をインストールしました。
  • msbuildRAD Studio XE4 コマンド ラインから起動されます。つまり、rsvars.batファイルを使用してパスなどを設定します。
  • 上記の出力では、実際のプロジェクト名を識別したくないため、実際のプロジェクト名を Project に変更しました。ただし、残りの出力は正確です。

何か案は?私は何年もの間それを解決しようとしてきましたが、困惑しています。

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

c++ - 関数テンプレートの区別

関数テンプレートについて勉強中です。

次のコードを試しました。

C++ Builder XE4 で、次のエラーが発生しました。

この場合、エラー 2015 を回避するにはどうすればよいですか?

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

c++ - I am currently using C++ builder 6 XE4 for developing finance charts. Exception when moving to a location on the chart canvas

While using a C++ builder 6 XE4 for creating a finance charts, i was trying to create, draw line feature. The Series that i had created was candle Stick Series. I tried to move to the XY co-ordinate as pointed out by the mouse pointer but whenever the below piece of code was hit, it threw an exception.

Chart1->Canvas->MoveTo(10,20); --> have given some valid values.

Is it possible to draw a line or any figures on the Chart (not on the form)? If yes, could you please let me know, how should it be done.

Thanks.