Jenkins 用 RAD Studio Plugin

過去記事を調べてみたらブログには書いてなかったことに気づいたので、改めて RAD Studio Plugin を紹介しておきます。

このプラグインの機能は、RAD Studio (Delphi もしくは C++Builder) のプロジェクトを簡単にビルドできるようにするだけです。必要な環境変数の設定は RAD Studio コマンド プロンプト用のバッチファイルから読み取るので、RAD Studio 各バージョンのインストール先をそれぞれ設定しておけば、ビルドに利用するバージョンを選択して、プロジェクトファイルと MSBuild のコマンド スイッチを指定するだけで、ビルドすることができます。もうバッチ ファイルで細工する必要ありません。

もし役に立つと感じたら、フィードバックをいただけるとありがたいです。

ここが変だよ! #Embarcadero C++Builder (part 2)

今回は不具合ではなくて言語仕様の話をしようと思う。

C++Builder では Delphi のクラスを使えるように拡張されているが、元々異なるものをくっつけたのでちぐはぐになっているという一例がこれ。

Link: C  Builder VCL でのオブジェクト生成 – RAD Studio.

Delphi (Object Pascal)  のクラスでは、最派生クラスのコンストラクターがまず呼び出されて、そこから基底クラスのコンストラクターを入れ子的に呼び出す仕組みなのに対して、C++ では基底クラスのコンストラクターから順に呼び出されるという言語仕様なので、呼び出される順番が異なる―というわけで、木に竹を接いだらこうなりましたというすごい仕様になっていたりする。

ここが変だよ! #Embarcadero C++Builder

C++Builderプロジェクトでmem.hというヘッダーファイルを作ると大変という話。

C++Builderでは,memcpyやmemsetといったCの標準ライブラリー関数を<mem.h>で宣言していて,<string.h>から間接的にインクルードしているのだが,このせいでユーザーがプロジェクトでmem.hというヘッダーファイルを作ると,そちらが使われてしまってmem*系の関数が宣言されないという困ったことになってしまうのである。

Link: mem.h – RAD Studio XE3.

続きを読む →