問題タブ [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.
delphi - TActionの名前を別のフォームに変更
TActionManager
1つのシングルと割り当てられTAction
た-sを共有したい2つのフォームがあります。
最初のフォームはメインフォームです-それはTActionManager
、TAction
キャプション「アクション」で保持されます。
Form1のメインメニューでは、このアクションとmenuitemのcaptionプロパティが「アクションA」に設定されています。Form2にはForm1が含まれ、メニュー項目にアクションを割り当て、キャプションは「アクションB」に設定されます。
設計時はすべてが良好に見えます。メニュー項目には、Form1とForm2で「アクションA」と「アクションB」という名前が付けられ、同じアクションが割り当てられます。実行時にも正常に動作します(OnExecuteは両方のフォームで適切に処理されます)。
ただし、実行時に、Form1メニュー項目には「アクションA」というキャプションがあり、Form2にはアクションキャプションと同じように「アクション」というメニュー項目キャプションがあります。
それらを誤って含めていますか?アクションを共有し、キャプションを変更するためにForm2にForm1を含めることは可能ですか?D2010 / CB2010のバグですか?
例:
- Form1とForm2を作成し、両方にメインメニューを追加します
- TActionManagerをForm1にドロップし、その中にAction1を作成します。
- Form1 Action1でメニュー項目を割り当て、その後キャプションを変更します(キャプションはデフォルト値からの変更を示す太字で表示されます)
- Form2のメニュー項目もAction1(Form1 TActionManagerから)に割り当て、デフォルトのキャプションも変更します。
- 実行時に、Form1はキャプションを変更し(Action1.Captionとは異なります)、Form2はAction1.Captionと同じキャプションを持ちますが、キャプションは手順4で変更された新しい値である必要があります。
c++ - C ++Builder2010を使用してAccessからDAOレコードセットを開きます
internetzでC++でDAOを使用することについての情報が不足していることにかなり悩まされています。私は修正することがあるので、それを少しいじる必要があり、代わりに窓から飛び出すことを考えています:)
私が見つけた唯一の例は、VB6、VB.Net、およびVBA関連です。私はそれらをC++に適用しようとしましたが、次のようなものがあります
しかし、それはただ働きたくないだけです。最初はSQLクエリだけで試し、次にdbOpenDynaset
設定を追加して他のクエリを試しました。しかし、実行は停止します。C ++の関数にはもっと多くの変数が必要かもしれないと思っていOpenRecordset
ますが、IDEにはそれに関するドキュメントがないので、暗闇の中でちょっといじっています。
選択には実際にはいくつかの結合が含まれますが、それが問題であるかどうかを確認するためにそれを削除しました。ただし、この単純なクエリとより複雑なクエリの両方がAccess内で実行されます。
c++ - C ++Builder2010の奇妙な「ランダムな」内部コンパイラエラー
たくさんのTNotifyEventsをベクターに入れるコードがあります。
これは、アプリケーションのメインフォームのメンバーです。フォームコンストラクターでは、イベントで埋められます。
次に、このベクトルが繰り返され、ポップアップメニューを作成し、そのポップアップメニューの要素に通知イベントを割り当てるために使用されます。
これをローカルでコンパイルしても問題はありません。ビルドサーバー(TeamCity 6.5を実行している)でコンパイルすると、2番目のpush_back呼び出しに等しい行で内部コンパイラエラーが発生します。
cbprojファイルを編集して、ビルドエージェントでローカルにスマートキャッシュのプリコンパイル済みヘッダーを無効にしてみました。これにより、ビルドが成功しました。そこで、すべてのcbprojファイルからスマートキャッシュのプリコンパイル済みヘッダーを使用するディレクティブを削除し、変更をコミットしました。TeamCityにクリーンチェックアウトを実行するように指示しましたが、同じ場所で同じ内部コンパイラエラーが発生しました。奇妙なことに、失敗したコンパイルの後に新しいコンパイルを実行すると成功するため、これは非常にランダムに感じられます。
何が起こっている?私は他のC++コンパイラで関数ポインタ(自分で作成したもの)をうまく渡すことに慣れています。TNotifyEventsの内部処理が壊れていますか、それともコンパイラが不安定で簡単に壊れていますか?
TNotifyEventsを取得する他のコードを見ると、参照やポインターでは機能しないため、私はそれを試しませんでした。また、コード(コンパイル時)は意図したとおりに機能するため、問題はないようです。
アップデート:
TeamCityのログには、コンパイルを再実行して成功したときにFrontEnd.cppファイル(このコードが含まれている)がスキップされることが示されていることを追加できます。
そしてそれが機能するためには、内部コンパイラエラーが発生したときにコンパイルが成功している必要があります。それ以外の場合、ファイルのコンパイルをスキップし、それでも魔法のように表示され、コンパイルされた形式で使用されるようにするにはどうすればよいでしょうか。:)
Update2
調査の結果、これはリリースモードでコンパイルした場合にのみ発生することが確認できました。リリースでは、IDEのローカルマシンでも発生します。私は次のような設定をいじってみました
- すべての最適化を無効にする
- 可能な限り最速のコードを生成する
- 外部タイプファイル
- 等々
各試行の間にビルドをクリーニングします。しかし、ICEは消えません。しかし、私はなんとか別のファイルの別の場所について文句を言うことができました。設定を以前の状態に戻しても、エラーがFrontEnd.cppファイルに戻ることはありません。このコンパイラはちょっと不安定に感じます:)
実際、私はコード全体でICEを取得し始め、何でもコンパイルできるようにするためにIDEを再起動する必要がありました。
linker - .cbprojファイルでのパッケージのインポートについて
Embarcadero RAD Studio 2010(C ++)を使用しています。プロジェクトファイル(.cbproj)には、.bpisまたは.libsのリストを含む5つの異なるタグがあります。これらのライブラリファイルの各リストがリンカーによってどのように使用されるかについての情報が必要です(ランタイムパッケージの有無にかかわらずビルドする場合)。
LinkPackageImports
LinkPackageStatics
AllPackageLibs
PackageLibs
PackageImports
私はすでにこの最後のものを理解していると思います。これには、IDEのプロジェクトプロパティから設定できるランタイムパッケージのリストが含まれています。
この質問の動機は、アプリケーションから不要な依存関係を排除しようとしていることです。.cbproj内のこれらの5つのタグには、それぞれ異なるlibとbpiの任意の組み合わせが含まれているようです。私が知っているいくつかのライブラリは私が必要としない、そして私が私が必要と思ういくつかのライブラリは私が必要としない。一部のリストから一部のライブラリを削除しても効果がないようですが、他のリストから他のライブラリを削除すると、フォームのリンカーエラーが発生します[ILINK32 Error] Fatal: Unable to open file 'FILENAME.OBJ'
私はすべてのリンカーの問題をゆっくりと解決していますが、これら5つのリストの1つにライブラリ名を含めるときに、リンカーに何をするように指示しているかを正確に知ることは非常に役立ちます。
msbuild - msbuild を使用して C++Builder 2010 プロジェクトをコンパイルするときに、特定の定義および設定出力パスを有効にします。
cmd からmsbuildを使用してC++ Builder 2010プロジェクトをビルドし、作成された exe を"../FooBar"に配置し、コンパイル中に定義 "FOO"を設定するように指定するにはどうすればよいですか? .cbproj ファイルで既に定義されている他の定義を削除したくありません。
msbuild スクリプトであらゆる種類のプロパティを試しましたが、何も機能していないようです。C++ Builder 2010 は、これをサポートするには古すぎるバージョンの msbuild を使用していますか?
明確にするために、これはすべてタスクタグを使用するmsbuildスクリプトで行われます<msbuild />
msbuild - msbuild スクリプトが C++ Builder 2010 プロジェクトの特定のビルド構成をビルドできない
C++ Builder 2010 にプロジェクト グループがあります。これには複数のプロジェクトが含まれています。これらのプロジェクトの 1つには、 DebugとReleaeの他に、Releaseの子であるDemoビルド構成があります。
私が遭遇する問題は、私たちが持っているビルド スクリプトからこれを実行し、プロジェクト グループ ファイルを呼び出して、デモ構成を使用してビルドすることを伝えると、未解決の WinMainに関するエラーが発生することです。存在しないビルド構成名を使用すると、同じエラーが発生します。したがって、私の最初の考えは、これはプロジェクト グループ内の他のプロジェクトがデモ構成を持っていなかったという事実によるものでなければならないということでした。しかし、cmd からプロジェクト グループ ファイルに対して msbuild を実行してDemoを渡すと、問題なくビルドされました。
cmd から msbuild を使用して特定のプロジェクトをビルドする場合も同様です。Config<msbuild />
/*Configuration* プロパティが各タスク呼び出しで引き継がれることを確認しました。
プロジェクト グループ ( .groupproj ) ファイルをハッキングし、 Releaseの実行時に問題のプロジェクトのDemoを強制的に実行することも機能しました。
何がこれを引き起こしているのでしょうか?
アップデート
また、デモが選択されたときにメイン ビルド スクリプトで特定のプロジェクトのみを実行することによっても正常に動作します。リリースビルドは、この前にビルド スクリプトによってビルドされていることに注意してください。
c++builder - TDateTimePicker から日時を取得する
C++ ビルダー IDE で TDateTimePicker から日時を取得できません。日付と時刻を表示するようにフォーマットしていますが、Kind
プロパティがに設定されていると思われるため、日付のみが表示されdtkDate
ます。このコンポーネントから日付と時刻を取得することは可能ですか??
c++ - この宣言を短くすることは可能ですか?
コードで頻繁に使用するため、この宣言を短縮する可能性はありますか
たとえば、私はこれを使用Object
して自分のCustomObject
使用にキャストします
これを使用して短縮する可能性はまったくありますか、typedef static_cast<TCustomClassName*>
またはこのようなものを使用してキャスト演算子を使用できるようにする可能性はありますtypedef
か?
c++ - time_t の C++ ビルダー エラー「型名が必要です」
ソースコードの行があります:
次のエラーが表示されます。
を含め<time.h>
ました。ここで何が欠けていますか?
コード: