Software_BCC_VC_CINT

☆BCC
Borland C++

◆コンパイラ
bcc32

_◇オプション

Windowsアプリケーションをコンパイルするとき

>bcc32 -W ソースファイル名

マルチスレッド用のライブラリの指定
-WM

DLL作成オプション
-WD

例)
bcc32 -WD sample.cpp
brc32 sample.rc sample.dll
⇒自動的にsample.defが読み込まれる

-l
リンカオプション
-lに引き続き-抜きのリンカオプションを記述する

-D文字列
引数行でのマクロ定義

_◇lib
.LIBのリンク例

bcc32 main.cpp sample.lib

_◇スタートアップコード
c0ではじまるオブジェクトファイルはスタートアップコード。
c0w … GUI
c0x … CUI
c0d … DLL
末尾にwがつくのは Unicode 用

_◇インポートライブラリの作成
implib インポートライブラリ名 DLL名

※通常の拡張子 .LIB

※VC++の場合、DLLビルド時にリンカーが自動生成

_◇インラインアセンブラ

__asm{
インラインアセンブラ命令
}

①コメント
;に続く

②C変数の参照
例)変数名aの参照
mov EAX, a

③レジスタ間接参照
例)
mov EAX,[ESP]

④セグメントの参照
例)
mov FS:[0], EAX

⑤関数アドレスの参照
例)
push offset funcName

◆リソースコンパイラ
brc32

リソース・スクリプトをコンパイルし、.exeとリンクする。

◆リンカ
ilink32

_◇オプション

-H:xxxx
│ デフォルトヒープの予約サイズ

-Hc:xxxx
│ デフォルトヒープの初期コミットサイズ

-S:xxxx
│ スタックの予約サイズ

-Sc:xxxx
│ スタックの初期コミットサイズ

xxxxは10進数もしくは0xHHHH形式の16進数

☆VC++
(MSVC)

※御本家Microsoft社のVisual Studioのページが以下に(Visual Studioの中にVCのコンパイラが含まれる)無料で使えるのはコミュニティ・エディション。

https://visualstudio.microsoft.com/ja/

◆環境設定

インストールフォルダのCommon7/Tools内に

vsvars32.bat

があるので、これを使えばコマンドラインからの環境が設定される

_◇コマンドラインからのコンパイル

>cl ファイル名

オプション(一部):

/?    コンパイラオプション一覧

/FA    アセンブリ出力
/FAc  アセンブリ出力にマシン語コードもふくめる

/Od    最適化無効
/Og    グローバル最適化

◆IDE

_◇プロジェクトの構成

ソリューション
│ プロジェクト
│   ソースファイル
│   ヘッダファイル
│   リソースファイル

※ビルドで作成される実行ファイルは1プロジェクトに1つ

_◇標準的コンソールアプリケーションの設定

①プロジェクトは「空のプロジェクト」とする
②プロジェクトのプロパティ
│ 構成プロパティ>リンカー>システム

│ サブシステムを /SUBSYSTEM:CONSOLE
とする

この設定の上で、新しい項目としてC++ファイルを選択追加する。
⇒プロジェクトの最上位フォルダ上で新しい項目の追加を行って空のファイルを作る。
※ソースファイルホルダを選択して作ろうとすると勝手にCLRなどが追加されてしまう。

_◇Win32コンソールアプリケーションの設定

⇒インストールされたテンプレートで Win32コンソールアプリケーションを選ぶ

◆デバッグ

☆CINT
Cのインタプリタ処理系

◆インタプリタ

_◇起動、終了

①コマンドラインよりソースを指定して起動

cint オプション ソースファイル名 プログラムへの引数

※オプション
-D[macro]      マクロ定義
例) -DDEBUG
-I[includepath]    インクルードパス
例)-I/home/include
-b[breakpoint]    ブレークポイント
例)-b aaa
⇒ 関数aaaの最初の文でブレーク
例) -f main.c -b 9
⇒ main.cの9行目でブレーク
-?          オプション一覧

※main()関数を発見すると以後の引数はmain()の引数と解釈するので、main()関数を含むファイルはソースの末尾とすること

②引数なし、cintデバッガモードで起動

cint

デバッガからは qでぬけられる

_◇ソース

①K&R C
②ANSI C
③ANSI C++

※Cソースの拡張子は
.c
⇒-KオプションでC指定となる

※C++ソースは
.C .cpp .cc .cxxなど
⇒-AオプションでC++指定となる

_◇cintデバッグモード

help  ヘルプ
q    終了
.    以後、入力したステートメントを即座に実行、デバッガコマンドは先頭に.
..    以降、.なしのデバッガコマンド、ステートメント実行は{}で囲む
p    式や文を評価し表示

※チュートリアル
demo/debugフォルダ
cint debug.c

_◇cint制限

①メンバへのポインタ        ×
②参照メンバ            ×
③演算子 .* ->*            ×
④new deleteに対するオーバロード  ×
⑤ユーザー定義の可変引数      ×
⑥新しいキャスト          ×
⑦型変換演算子            ×
⑧catch                ×
⑨throw                ×
⑩名前空間              ×

※独自拡張
演算子  @