Scheduled Maintenance on Friday, November 20th, 2009

We will be performing scheduled maintenance on http://www.embarcadero.com and http://docwiki.embarcadero.com from 7pm Friday to 11am Saturday, Nov 21, 2009 Pacific time.

The EDN web sites, and the Support web site will not be affected.

We will keep our systems up as much as possible during this maintenance time. We will keep the outage as short as possible, and we apologize for the inconvenience.

旧C++Builder FAQ - IDE

Abstract: この FAQは、旧 www.borland.co.jpに掲載されていた記事を転載したものです。記事は掲載時点の情報をあるがままに掲載しており、新バージョンでのご利用においては、コンポーネントや APIの仕様変更等によりご利用いただけない場合がありますのでご留意ください。

    プログラムコードでブレークポイントを設定したい(99/6/4)

該当するバージョン:C++Builder 1

Q:

プログラムコードでブレークポイントを設定したい

A:

ブレークを設定したい、前の行に次の記述をしてください。

__emit__(0xcc); 

この記述はプロジェクトを開くたびに、常に同じ場所で停止させる場所を設定したい場合などたいへん有効です。

例えば C++Builder1.0では DLLにブレークポイントを設定することができませんでした。

上記の記述をすると、DLLのデバッグでもブレークを行うことが可能になります。

    GUIアプリのプリプロセッサにて「__CONSOLE__」が定義されてしまう

該当するバージョン:C++Builder 1

Q:

GUIアプリを作成したのに、コンパイル時のプリプロセッサにて、「__CONSOLE__」が定義されてしまいます。

A:

統合環境が生成するデフォルトのコンパイルオプションに、「-W」がないために発生している現象です。

回避策といたしましては、プロジェクトファイル(??.mak)をエディタで開いて「CFLAG1 .......」とかかれた行に、「CFLAG1 ....... -W」と最後に -Wを追加してください。(この部分はメニューからは変更できません)

なお、この変更により、統合環境及びコマンドラインの両方について、「__CONSOLE__」が未定義になります。

    オートメーションオブジェクトを作成していますが、インスタンスの設定方法がわかりません(99/2/3)

該当するバージョン:C++Builder 3,C++Builder 4

Q:

オートメーションオブジェクトを作成していますが、このオブジェクトのインスタンスの設定方法がわかりません。

A:

メニューの[プロジェクト|オプション] を選択した時表示される"プロジェクトオプション"ダイアログに ATLのタブが追加されます。

そのタブの設定でインスタンスを選択できます。

"シングル","マルチ" かで選択されたものが反映されます。

    プロジェクトのデフォルトスタックサイズを変更したい(99/01/08)

該当するバージョン:C++Builder 3

Q:

プロジェクトのデフォルトスタックサイズを変更したい

A:

リンカのオプションにより、スタックの最大サイズを変更することが可能です。

デフォルトでは 1MByte に設定されています。

以下の設定は 2MByte に変更します。

メニューの[プロジェクト|プロジェクトオプション|リンカ|予約スタックサイズ] の値を 0x00100000から 0x00200000へ変更して下さい。

2MByte 予約されます。

変更後は再構築を行って下さい。

    プログラムを実行すると IDEごと消えてしまいます(99/01/08)

該当するバージョン:C++Builder 3

Q:

プログラムを実行すると、統合環境ごと消えてしまいます。

A:

プロジェクトを保存しているディレクトリ名を変更して下さい。

ディレクトリ名に @マークや全角のディレクトリ名を使用していませんか?

ディレクトリ名の先頭に '0x40'のコードを含んでいますと統合環境ごと消えたり、実行ができないなどの現象が発生します。

ディレクトリ名を @マーク以外の半角英数字に変更して下さい。

    デバッグ時の配列のインスペクトを 1024以上にするには(98/12/2)

該当するバージョン:C++Builder 3,C++Builder 4

Q:

デバッグ時、配列の要素数を確認するためにインスペクトで確認していますが 1024個以上の要素を確認することができません。

A:

デバッグインスペクタのダイアログ上でマウスの右クリックを押してメニューを表示して下さい。

そのメニューの [範囲の設定] を選び、範囲のダイアログで要素数の値を表示したい最大値に、設定して頂けると表示可能です。

    ブレークポイントでIDEが前面に表示されない(Windows98) (1998/09/04)

該当するバージョン:C++Builder 3

Q:

Windows98で C++Builderを使用している場合に、ブレークポイントで IDEが前面に表示されないことがあります。

A:

これは Windows API SetForegroundWindow()の変更による現象です。マウスやキーボードで IDEをアクティブにしてください。

また、この現象は、以下の設定を行うことにより回避できます。

"Windowsフォルダ"\Win.iniファイルに [Compatibility95]セクションを追加します。

("Windowsフォルダ" : Windows98 インストール先)

  [Compatibility95]
  BCB=0x00000002

    メイク時に"Incorrect Project Override Option"エラー(1998/09/04)

該当するバージョン:C++Builder 3

Q:

メイク時に"Incorrect Project Override Option"エラーが発生します。

A:

C++Builderのインストール先及びプロジェクト(*.BPR,*.CPP,*.HPPなど)のフォルダ/ファイル名は半角英数字([A]~[Z],[a]~[z],[0]~[9])を使用してください。

    起動時にハングアップ(Windows98) (1998/09/04)

該当するバージョン:C++Builder 3,C++Builder 4

Q:

一部のビデオカードを使用したWindows 98環境において、C++Builder 3を起動した時点でハングアップすることがあります。

A:

この場合は、「画面のプロパティ」の「設定」ページで「詳細」ボタンを押して表示されるビデオカードの設定ダイアログの「パフォーマンス」ページで「ハードウェアアクセラレータ」の設定を「基本」または「なし」にすることで回避できる場合があります。

一般に、安全な動作環境のために、最新のドライバを利用するようにしてください。

    プロジェクトファイルの移行について(98/08/03)

該当するバージョン:C++Builder 3

Q:

C++Builder1.0で作成したプロジェクトを 3.0で読み込み、変換を行っても上手くいかない場合があります。

A:

そのような場合は 3.0でプロジェクトを作成し直して下さい。

例えば 1.0のプロジェクトで以下のファイルを持っていたとします。

  project1.mak
  project1.cpp
  project1.res
  unit1.cpp
  unit1.h
  unit1.dfm
  1. 3.0で新規にプロジェクトを作成して下さい。
  2. プロジェクトの作成方法は、メニューの [ファイル|アプリケーションの新規作成]を選んで下さい。そしてメニューの[表示|プロジェクトマネージャ]を選択してプロジェクトマネージャを表示させて下さい。
  3. プロジェクトマネージャで unit1を選択して、マウスの右クリックを押してメニューを表示させ、そのメニューの中の[プロジェクトから削除]を選択してプロジェクトから削除して下さい。ここでプロジェクトを保存します。メニューの[ファイル|プロジェクトに名前を付けて保存]を選択して project1.bprとして保存します。
  4. その後にメニューの[ファイル|すべて閉じる]を選択してプロジェクトを閉じます。
  5. この保存したプロジェクトファイルに 1.0で作成してあるソースを入れ換えます。project1.mak以外を作成したプロジェクトに上書きします。

上書きするファイルリスト

  project1.cpp
  project1.res
  unit1.cpp
  unit1.h
  unit1.dfm

上書きするにはエクスプローラ等を使用して下さい。

  1. メニューの[ファイル|プロジェクトを開く]で project1.bprを開きます。プロジェクトに 1.0で作成した unit1.cppや Form1が追加されています。
  2. unit1.h を開きます。extern TForm1 *Form1; の記述を以下のように変更して下さい。
extern PACKAGE TForm1 *Form1;

また、合わせて Readme.hlpも参考にして下さい。

    Cソース単体のプログラムを IDEで利用できません

Q:

既存の簡単な Cソースを IDEで利用したいのですがどのようにすればできますか

A:

Cソースをプロジェクトのモジュールのひとつとして、利用することはできますが、メインモジュール(PROJECT1.CPP)と置き換えることはできません。

[ファイル(F)|新規作成...(N)]で作成される、PROJECT1.CPPに既存のコードをカット&ペーストしてご利用するか、コマンドラインツール(BCC32.EXE)をご利用ください。

    C++Builder Directを削除したい(99/7/5)

該当するバージョン:C++Builder 4

Q:

C++Builder Directを削除したい

Q:

統合環境は起動時にレジストリの情報を参照して必要なパッケージをロードしています。

C++Builder Directもパッケージを使用して起動やメニューの登録を行っています。

C++Builder Directを削除する場合は次のレジストリキーの値を削除してください。

メニューから削除され、自動起動も行われません。

キー:

\HKEY_CURRENT_USER\Software\Borland\C++Builder\4.0\Known IDE Packages

値:

$(BCB)\Bin\bcbdrt40.bpl

    オートメーションオブジェクトを作成するとリンクエラーになります。(99/5/12)

該当するバージョン:C++Builder 4

Q:

オートメーションオブジェクトを作成するとリンクエラーになります。

A:

オートメーションオブジェクトを選択して作成されるユニットのヘッダーファイルを修正して下さい。

    class ATL_NO_VTABLE TxxxImpl :
    public CComObjectRootEx<CComObjectThreadModel>,  //追記して下さい。
    public CComCoClass<TxxxImpl, &CLSID_xxx>,
    public IConnectionPointContainerImpl<TaaaImpl>,
    public TEvents_aaa<TxxxImpl>,
    public IDispatchImpl<Ixxx, &IID_Ixxx, &LIBID_Project1>
    {
    public:
      TaaaImpl()
      {
      }
      // Data used when registering Object
      //
      DECLARE_THREADING_MODEL(otSingle);   //追記して下さい。
      DECLARE_PROGID("Project1.xxx");
      DECLARE_DESCRIPTION("");

以下省略

上記の CComObjectThreadModelは atlbase.hでスレッドのモデルにより if defされて typedefされていますが2番目に追記した DECLARE_THREADING_MODEL(otSingle)は引数をモデルにより記述し直さなければいけません。

引数は enum型で次のようになっています。

enum ObjectThreadingModel
{
  otSingle,
  otApartment,
  otFree,
  otBoth,
  otAmbientThreadModel
};

この件に関して修正プログラムが公開されています。

修正プログラムも使用して下さい。

http://support.codegear.com/article/36435/

    IDEのエディタにマウスを持って行くと、砂時計が表示されて処理が遅くなります(99/5/12)

該当するバージョン:C++Builder 4

    Q:

IDE のエディタにマウスを持って行くと、砂時計が表示されて処理が遅くなります

    A:

新しく付加された支援機能の一部で、コードエディタでマウスを任意の識別子上に移動させたときにその宣言情報を(ポップアップウィンドウに)表示する処理を行うための前処理のために発生します。

一度この前処理が終われば、後は高速に情報を表示しますが気になる場合は、メニューの[ツール|環境オプション|支援機能|自動支援機能]の"識別子の定義の表示"のチェックを外して下さい。

    Windows98環境で Timageの画像読み込みダイアログで、ファイルを読むと統合環境が異常終了(99/5/12)

該当するバージョン:C++Builder 4

Q:

Windows98環境で TImageの画像読み込みダイアログで画像ファイルを読むと統合環境が異常終了してしまいます

A:

設計時に TImageの画像読み込みダイアログで画像ファイルを選択すると、その右側に画像のイメージが表示されます。この画像イメージを表示するために Windows APIの StretchBltを使用しています。Windows98環境で、この関数の引数 WidthSrcに 1880を指定すると例外が生成されてしまいます。そのために統合環境も異常終了してしまします。

Windows95,Windows NTでは発生しません。

    デバッグのオプションの設定は、どこで行うのでしょうか(99/5/12)

該当するバージョン:C++Builder 4

Q:

デバッグのオプションの設定は、どこで行うのでしょうか。1.0Jや 3.0Jの時は[ツール|環境オプション]で行えました。

A:

デバッグオプションのメニューが新たに追加されました。

メニューの[ツール|デバッグオプション]を選択してオプションを設定して下さい。

    C++Builder 1.0Jのプロジェクトを 4.0Jにアップデートすると、リンクエラーが表示されるようになりました(99/5/12)

該当するバージョン:C++Builder 4

Q:

C++Builder 1.0Jのプロジェクトを 4.0Jにアップデートするとリンクエラーが表示されるようになりました。

A:

プロジェクトのソースファイル(Project1.cpp)に使用していないオブジェクトをリンクする記述が残っていませんか。

  #pragma link xxxx

残っている場合は、必要ありませんので削除して下さい。