問題タブ [c++builder]

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

c++ - C++Builder がプリコンパイル済みヘッダーの作成に失敗するのはなぜですか?

問題

CodeGear C++Builder 2009 では、プリコンパイル済みヘッダー インジェクションを使用して、コンパイル時間を大幅に短縮しています。複数のプロジェクトに同じヘッダー ファイルが挿入されています。一部のプロジェクトをコンパイルすると、コンパイラは次の警告を表示します。

この例では、Dateutils.hppが問題のファイルです (CodeGear のヘッダー)。これが他のヘッダーでも発生するのを見てきました。これが興味深いのは、これが一部のプロジェクトでのみ発生することです (同じヘッダーが挿入されます)。

以前は、最終的にこの誤ったファイルをインクルードしたヘッダーを見つけて、コンパイル済みのヘッダー ファイルから削除する必要がありました。ここで何が起こっているのか、それを修正する最善の方法を知っている人はいますか?

アップデート

最終的にヘッダー ファイルに対して消去法を実行したところ、説明できない興味深い発見がありました。含まれる 50 以上のヘッダーのうち、vcl.hを削除すると、W8058 警告が表示されなくなりました。特にこのヘッダー ファイルがプリコンパイルの最有力候補であると想像するので、これは理解できません。誰かがそれを説明できますか?

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

delphi - C ++ Builder/Delphiの初期化されていないメモリ

Delphiの初期化されていない変数は、特定の値を持つことが保証されていますか

  • スタック上?
  • ヒープ上?

C ++ Builderは一般的にDelphiの設計に従っているため、C ++ Builderの初期化されていない変数は、特定の値を持つことが保証されています。

  • スタック上?
  • ヒープ上で、TObjectから派生したクラスのメンバー変数の場合?
  • ヒープ上で、 POCOのメンバー変数の場合?

私は、ゼロで初期化されるメンバー変数に大きく依存するC ++ Builderコードをいくつか継承し、言語がこれを保証するかどうかを理解しようとしています。

Windowsは、メモリがプログラムのスタックまたはヒープに最初に渡されたときに、メモリがゼロで初期化されることを保証しますか?(編集:プログラムは実行時にメモリを上書きするため、これに依存し続けることはできません。私が観察した動作を理解しようとしているだけです。)

0 投票する
11 に答える
7924 参照

delphi - C++ Builder 対 Delphi 対 MFC

私は MFC を学んでいますが、使いやすいとは思いません。

Delphi についてはよく耳にします。Delphi について調べた結果、C++ Builder にたどり着きました。

C++ Builder は、C++/MFC の本格的で優れた代替手段を提供しますか? C++ Builder は MFC より優れていますか? C++ Builder は Delphi より優れていますか? (私は Delphi について多くの良いことを聞いたことがあります)

C++/MFC、Delphi、C++ Builder の比較を教えてもらえますか?

助けてくれてありがとう。

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

delphi - Delphi / C++Builder に複数のライブラリ バージョンをインストールする

Delphi または C++Builder にライブラリの複数のバージョンをインストールするにはどうすればよいですか? たとえば、現在のバージョンの JCL と JVCL を使用してアプリの次のバージョンを開発できるようにしたい一方で、そのリリース用にテストされた JCL と JVCL のバージョンを使用してアプリのリリース バージョンをコンパイルできるようにしたい場合があります。

Boost のようなライブラリを使用すると、ライブラリの複数のバージョンを簡単に使用できます。これは、必要な場所に置くことができる単なるヘッダー ファイルとライブラリ/DLL ファイルであるため、プロジェクト ファイルを適切なライブラリ ディレクトリに指定するだけで済みます。ただし、JCL や JVCL などのライブラリは IDE にインストールしようとするため、管理不能なハックにならずに異なるバージョンを使用するように異なるプロジェクトを構成する方法がわかりません。

(Delphi がコンポーネントとプロジェクトを管理する方法については、まだ完全には理解していません。私の経験のほとんどは C++ での経験です。したがって、これは私の問題の一部である可能性があります。)

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

sql-server - Windows サービス内からのデータベース接続なし

CBuilder 6 (ターゲット XP Pro) でサービスを作成しようとしています。このサービスのジョブの一部は、データベースのテーブルを監視および更新することです。データベースへの接続には直接 ODBC を使用しますが、問題は ADO でも発生するため、簡単にするためにそれを使用します。

以下の私のコードを見ることができます。これは、ServiceStart イベントで実行される関数から呼び出されます。

私の問題は、接続を取得できないことです。当社の MSSQL DB はドメイン認証を使用しているため、ドメイン アカウントを使用してサービスを実行してみました。また、ドメイン\ユーザー名とパスワードを明示的に定義しようとしましたが、どちらも機能しません (サービスのプロパティの [ログオン] タブ)。

誰でもこれで私を助けることができますか?何でも大歓迎です。

もう 1 つの質問は、サービスをどのようにデバッグするかということです。リモートデバッガーをインストールしました。rundll32.exe などを使用してプロセスを生成しますか? 繰り返しますが、助けていただければ幸いです。

多くの前もって感謝します

スチュ。

コードスニペット:

注: 接続文字列プロパティは単なる指標であり、ユーザー名、パスワード、およびデータベースが変更されています。この文字列をスタンドアロン アプリケーションで使用すると、一貫して接続が成功し、クエリを使用してデータを取得できます。


JP への対応:

こんにちは、JPです。

ご意見をありがとうございます。私は実際にここで例外をスローしていません (これは奇妙です)。コード (下記参照) を修正して、さらにいくつかの msgbox を含めましたが、表示されるのは最初の 1 つだけで、接続を試みています。

何か案は?接続コンポーネントが作成されていない理由がわかりません (どうなるかを確認するために、所有者をこれから NULL に変更しようとしたことに注意してください)。

ありがとう!

スチュ。

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

c++ - エラー メッセージ:「リソース ExperimentFrame.res が見つかりません」

ファクトリ パターンを使用してプロジェクト内にフレーム VCL を作成しようとしています。

このようなもの:

ファクトリが実装クラスを作成すると、リソース ファイルが見つからないというエラー メッセージが表示されます。

たとえば、TFrameFooBar ファクトリを使用してクラスのインスタンスを作成すると、次の例外が 発生します。

プロジェクト gymAce は、「リソース TFrameFooBar が見つかりません」というメッセージで EResNotFound を発生させました。

これは、IDE の問題に少し似ています。

誰もこれに対する回避策を知っていますか?

0 投票する
4 に答える
1125 参照

c++ - 異なるコンパイラの C++ 仮想継承の実装は互換性がありませんか?

次のようなパブリック インターフェイスの階層があります。

IFooBar を実装するクラスは、ファクトリ関数と共に dll に配置されます。クライアント コードは dll をロードし、ファクトリ関数を使用してクラス インスタンスを作成し、それをインターフェイスに従って使用します (これらはヘッダー ファイルとして提供されます)。

Scheme は、MSVC によって作成された dll と、Borland C++ Builder 6 によって作成されたクライアント コードで正常に動作します。

仮想継承を階層に導入します。

そして、同じ状況 (MSVC による dll、Builder によるクライアント) で、クライアント コードがクラスのインスタンスを要求すると、乱雑な vtable でそれを取得します。

通常の継承にロールバックする以外に解決策はありますか?

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

c++builder - 誰もがCodegearBuilder2009でBoostSERIALIZATIONを正常に使用しました

データの永続化に成功した場合、どのタイプのストリームを使用できるようになりましたか

BOOST_ASSERTSまたは追加のMACROを使用するか、午前4時にフェアリーリングの周りでムースのセーターを後ろ向きに着て踊る必要がありましたか。

ご回答有難うございます

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

c++ - C++ Builder VCL での RegisterClass の自動化

フォームがデータベース内の EXE の外部に保持されているアプリケーションには、C++ Builder を使用します。アプリケーション コードは C++ です

これにより、再コンパイルせずにフォームとフォーム/アクションを変更できます。以下は、フォームをロードするジョブを実行するコードのスニペットです。

参照されているすべてのクラスを登録するために呼び出すことができる組み込み関数があるかどうか知りたいです。自分ですべてのオブジェクトのメモリストリームまたはファイルをスキャンし、それぞれに対して RegisterClass を呼び出すことは可能だと思いますが、誰かが既にこれを行った関数を知っていることを望んでいました。

そのため、すべてのフォームがこれらのクラスをすべて使用するわけではないため、実際に継承されるものだけを登録するとよいでしょう。