既存アプリケーションをコンパイルする (1) - Delphi

Delphi 7 で作成した既存のアプリケーションをコンパイルできるか試してみます。 今回使うのは、比較的サイズの小さい、木構造で四角形のデータを格納するプログラムを試しに使ってみたいと思います。


まず、Delphi7 で作成したプロジェクトのdpr ファイルをDelphi8から開きます。


そのままフォームは表示できるよううです。コンポーネントは PaintBox Panel Button TreeView Memo などの一般的なものしか使っていません。

で、コンパイルするのですが、エラーが出ました。QuickSortでPointer型はだめよといわれています。

この代入も Delphi8ではサポートしてくれないようです。



Pointer型はだめですので、当然、PPointerListなどもってのほかです。

Language Issues in Porting VCL Applications to Delphi 8 for .NET には、Pointer型は(安全な.NETではそんな危険(Unsafe)な型は)使えないよ。とのことです、下のように、TObjectに直しなさい!と指示されています。

しかし、こう(すべてのケースで)すんなり直せるのだろうか… ちなみにビットシフトもunsafeなコードだそうです。結局このプログラムは Pointer型が非常に多いことで、unsafeのオンパレードになりそうだったので、断念しました。

結局、数学的データ処理部や構造体をポインタで渡すような部分は再設計からしなおす必要があるのかもしれません。(あるいは移植せずにWin32のままにするか)

著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2004-01-27
iPentec all rights reserverd.