24th Embarcadero Developer Camp

Similar documents
「RAD Studio XE5によるマルチ言語/マルチデバイス開発の進め方」

データベースアプリケーション構築技法 Delphi、C++Builderによるメンテナンス性を考慮した開発

7th CodeGear Developer Camp

InstallAwareを使った Delphi/400運用環境の構築

FastReportへの効率的な帳票レイアウトコンバート


21st Embarcadero Developer Camp T9

Rational Roseモデルの移行 マニュアル

説明書

インテル(R) Visual Fortran コンパイラ 10.0

CashDrawer ライブラリ API 仕様書 2014/07/09 CashDrawer ライブラリ API 仕様書 Rev / 10

7th CodeGear Developer Camp

CodeGear Developer Camp

25th Developer Camp

Microsoft PowerPoint - Borland C++ Compilerの使用方法(v1.1).ppt [互換モード]

企業の収益に対する64-bitアプリケーションの影響

IPM Release 2.6 へのアップグ レード

intra-mart Accel Platform — IM-共通マスタ スマートフォン拡張プログラミングガイド   初版  

17th Embarcadero Developer Camp

03 Podium Walkerのインストール方法およびアンインストール .docx

MultiLABELISTOCX と MultiLABELISTV4 MLOCX は MLV4 のレイアウト発行機能を継承しています したがって MLV4 の振分発行やプ リセット発行を使用するための登録情報は使用できません MLV4 のレイアウト管理でレイアウトを作成すると 拡張子が m lay

Microsoft Word - Build3264Project.doc

03 Podium Walkerのインストール方法およびアンインストール .docx

Microsoft Word combine.doc

NEC COBOL Enterprise Edition Developer クライアントライセンス V2.0 COBOL Enterprise Edition Developer クライアントライセンス V2.0 (1 年間保守付 ) COBOL Enterprise Edition Develo

InstallShield FAQ < 独自の InstallShield 前提条件を作成する > 注 ) このドキュメントは InstallShield 2014 Premier Edition を基に作成しています InstallShield 2014 以外のバージョンでは設定名などが異なる場合

BOM for Windows Ver

17th Embarcadero Developer Camp

20th Embarcadero Developer Camp

インテル® Parallel Studio XE 2019 Composer Edition for Fortran Windows : インストール・ガイド

Microsoft Word - J-migratingjdevelope#110A7A.doc

インストール後のアプリケーション実行

21st Embarcadero Developers Camp T3

intra-mart Accel Platform

VBコンバータ利用方法

CodeGear Developer Camp

Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ

SystemDirector Developer's Studio(V3.2) 適用ガイド

使用する前に

プログラミング基礎

この時お使いの端末の.ssh ディレクトリ配下にある known_hosts ファイルから fx.cc.nagoya-u.ac.jp に関する行を削除して再度ログインを行って下さい

InstallShiled FAQ デバイスドライバーのインストール 注 ) このドキュメントは InstallShield 2011 Premier Edition を基に作成しています InstallShield 2011 以外のバージョンでは設定名などが異なる場合もあります 概要 Instal

COBOL EE開発環境 ご紹介資料

「Delphiのマイグレーションを行うのであれば、これだけは知っておこう!」

統合開発環境CubeSuite+ V へのバージョンアップのお知らせ

WebReportCafe

20th Embarcadero Developer Camp

03 Podium Walkerのインストール方法およびアンインストール .docx

スマートにプログラミング Android 入門編第 2 版 SDK4/2.3 対応 よくあるご質問 (FAQ) ここでは 読者の皆様から寄せられた質問の中で 比較的多く見受けられたトラブル事例とその解決策を集め掲載致しました お困りの際の解決のヒントとしてご利用下さい なお スマートにプログラミング

ResizeKit2 VB/Delphi/C++Builderプログラミングマニュアル

スクールCOBOL2002

Windows インタフェースモジュール (ver1.451) の更新方法 2017 年 12 月 21 日 株式会社ハイバーテック 本メール添付インストーラを使用して,Windows インタフェースモジュールを更新 ( インストール ) する方法を記載します. 本メール添付ファイル (ver145

フローチャート自動生成ツール yflowgen の使い方 目次 1 はじめに 本ツールの機能 yflowgen.exe の使い方 yflowgen.exe の実行方法 制限事項 生成したファイル (gml ファイル形式 ) の開

HDC-EDI Manager Ver レベルアップ詳細情報 < 製品一覧 > 製品名バージョン HDC-EDI Manager < 対応 JavaVM> Java 2 Software Development Kit, Standard Edition 1.4 Java 2

ADempiere (3.5)

10th Developer Camp - B5

Data-Add User Manual.book

2 / 26 平成 26 年 4 月 11 日 ( 金 ) 午後 1 時 9 分 Visual C Express の使用法 ( 東海大学理学部物理学科 ) 無償で利用できる開発環境 (Windows XP 以降 ) Visual Studio 2010 Express

DPC-0401

セットアップカード

NEC COBOL SQL アクセス Server Runtime V1.0 COBOL SQL アクセス Server Runtime V1.0 (1 年間保守付 ) COBOL SQL アクセス Server Runtime V1.0 (1 年間時間延長保守付 ) セットアップカード SL438

クライアント証明書導入マニュアル

ソフトウェアエンジニアリング - 機能 #54

開発ツールのコラボレーション機能を検証する

<4D F736F F D20837D815B B838B837A838B835F E836782CC91E391D68EE892692E646F63>

インテル Parallel Studio XE 2017 Composer Edition for Fortran Windows* インストール ガイド Rev (2017/06/08) エクセルソフト株式会社

AquesTalk for WinCE プログラミングガイド

PowerPoint プレゼンテーション

IBM SPSS Statistics - Essentials for Python: のインストール手順 Mac OS

知って得する!現役ヘルプデスクが答えるDelphiテクニカルエッセンス 8.0

Microsoft Word - Android_実習環境

(Microsoft Word - FireWall\202\314\227\341\212O\220\335\222\350\202\360\215s\202\244.doc)

CLAIM接続利用手順

1. はじめに Systemwalker Desktop Patrol V 以降でセキュリティ監査として BIOS パスワード設定の監査 を提供しています しかし Systemwalker Desktop Patrol メインメニュー のセキュリティ情報に表示される起動パスワード 設定パ

RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+)

PowerPoint プレゼンテーション

Setting up HeapAgent if you’re using

NEC Express5800 シリーズ COBOL Enterprise Edition クライアントライセンス V1 COBOL Enterprise Edition クライアントライセンス V1 (1 年間保守付き ) COBOL Enterprise Edition クライアントライセンス

フォーマット(初期化)について

フォーマット/メンテナンスガイド

NortonAntiVirus for MicrosoftExchange

◎phpapi.indd

内容 Softimage のスタンドアロンライセンスのインストールとライセンス取得 Softimage セットアッププログラムを実行 エンドユーザ使用許諾契約 (EULA) に同意 インストール先のパスを指定 パッケージの選択... 6

製品組み込み手順書 Oracle Tuxedo (Windows版)

二次元連続動的計画法による知的画像処理システム ImageFileSelector RTC 機能仕様書 ImageFileSelectorRTC Ver.1.0 ( 株 ) 東日本計算センター 1 / 11

Autodesk Softimage 7.5 スタンドアロン インストール ガイド

Webコンポーネントのカスタマイズ入門

<4D F736F F D20B6BCB5D7B2CCDED7D8CFC6ADB1D9315F43532E444F43>

UIOUSBCOM.DLLコマンドリファレンス

CONTEC DIOプロバイダ ユーザーズガイド

MSI Tip: システム検索による INSTALLDIRの設定

TFTP serverの実装

V5.0 V4.2 から V5 への 変更点 1.1 版 2010 年 03 月 26 日

統合開発環境CubeSuite+ V へのバージョンアップのお知らせ

A. InstallScript プロジェクト InstallScript インストールは InstallScript エンジンによって制御され 決められた順序で一連のイベントが生成されます これらのイベントは インストールを実行するソフトウェアハンドラーをトリガーします たとえば インストールがロ

1. はじめに 1.1. 対象アプリケーション このドキュメントでは GeoCoach3D シリーズ 8 のアプリケーションソフトウェアのインストールについて説明 します 以下のアプリケーションが対象です 記号はアプリケーションやインストーラを区別するための文字で す アプリケーション名 記号 バー

Microsoft Word - 01.【電子入札】パソコンの設定方法について 修正_

(Microsoft Word - opensource COBOL \202\314Windows\221\316\211\236\202\311\202\302\202\242\202\304.docx)

PostgreSQL Plus 管理者ガイド

(2) [ バックアップツール ] が表示されます [1] [2] [3] [4] [5] [6] Windows Storage Server 2012 バックアップ手順 (V_01) < 画面の説明 > [1] バックアップ項目リスト登録されているバックアップセットの一覧です [2] 新規 ボタ

Transcription:

17 Th Developer Camp B4 Delphi/C++Builder テクニカルワークショップ Delphi / C++Builder 旧バージョンアプリケーションの移行 エンバカデロ テクノロジーズサポートチーム with 高橋智宏 1

17 Th Developer Camp Delphi Q1 2

midas.dll Q. 別々のバージョンで作成したデータベースアプリケーションがあります その場合 midas.dll は.exe と同じディレクトリに配置すれば問題ありませんか? A. midas.dll はインプロセスサーバーとして動作します そのため通常の dll のように.exe と同じディレクトリ上にある midas.dll が優先して使われるのではなく インプロセスサーバーとして登録してある midas.dll があるかどうかを確認し あればそれを使用し 無ければ.exe と同じディレクトリ上にある midas.dll 等が使用されます XE3 で作ったアプリケーションが 2007 の midas.dll を使用して文字化けが等が発生することがあります midas.dll は配布するのではなく uses に含めるのがベター ( uses MidasLib; ) 3

17 Th Developer Camp Delphi Q2 4

背景色 Q. 以前のバージョンで作成したアプリケーションを XE3 でビルドして実行したら TCheckBox の背景色が表示されなくなりました TPageControl も白くなります A. プロジェクトのランタイムテーマが ON の時の正しい動作です [ プロジェクト オプション アプリケーション ] のランタイムテーマの ON/OFF を確認する 5

17 Th Developer Camp Delphi Q3 6

プロジェクトオプション Q. 移行プロジェクトごとに使用しているコンポーネントパッケージなどが異なるのですが -[ ツール オプション 環境オプション Delphi オプション ] -[ コンポーネント パッケージのインストール ] で設定しなければなりませんか? A. プロジェクトファイル毎に 使用するパッケージや コンパイラの検索パス等を設定し 保持することができます 7

17 Th Developer Camp Delphi Q4 8

エラーメッセージ Q. データベースアクセス時のエラーメッセージをカスタマイズしたいのですが A. 例えばキーの重複などで発生するエラーの場合 OnPostError で if (E is EDBClient) and (E.Message = 'Key violation.') then raise Exception.Create(' キー重複エラーです '); のように記述することが可能です ただし あちこちに散らばっていると 作業箇所が複数になり工数もかかってしまいます データモジュールを活用しよう ( データベースアクセス部分のパッケージ化 ) 9

17 Th Developer Camp C++Builder Q1 10

アクセス違反 Q. C++Builder6 から C++Builder 2007 へプロジェクトを移行しています sscanf 関数を呼び出した以降のコード近辺で例外が発生するようになりました コンパイラの最適化オプション等を変更すると起きなくなる場合もあるようです Project1.exe が例外により実行を停止しました accessviolation at 0x2013c52f:read of address 0x00120000 再開するにはステップ実行または実行を選択してください 11

原因と解決策 A. そもそも sscanf 関数のフォーマット形式 %d で受け取る変数は int 型 (32bit 整数 ) を要求します sscanf 関数の引数として渡している showloc の型は USHORT(16bit 整数 ) です sscanf 関数は 32bit 幅で書き込み はみ出た 16bit 分の領域がメモリを壊します 案 1. showloc 変数の型を USHORT から int や UINT 等に変更する 案 2. sscanf 関数に渡すフォーマット形式を %d から %hd に変更する 12

17 Th Developer Camp C++Builder Q2 13

BCC32 致命的エラー Q. 旧バージョンの C++Builder プロジェクトを 最近のバージョンの C++Builder 移行しようとしています あるプロジェクトをビルドすると 以下のようなエラーが表示されてコンパイルすることができません 開発マシンは 64bit 版 OS で メモリも 8GB 積んでいるのですが... [BCC32 致命的エラー ] xxxxxx.cpp( 行番号 ): F1008 メモリ不足 14

原因と解決策 A. コンパイラ自体は 32bit プロセスのため 巨大なソースファイルをコンパイルする場合 コンパイラが十分なメモリを確保できないことがあります コンパイラが使用するメモリサイズのデフォルトはそんなに大きくありません [ プロジェクト オプション... C++ コンパイラ 拡張 ] の [ コンパイラに渡す追加オプション ] として以下のパラメータを指定します なお 指定できるメモリサイズの量は マシン環境に依存します C++Builder XE 以前のバージョンの場合 -CXxxx C++Builder XE 以降のバージョンの場合 --savemem=xxx 15

17 Th Developer Camp C++Builder Q3 16

Active Template Library(ATL) Q. 旧バージョンの C++Builder で作成したプロジェクトを C++Builder XE へ移行しています しかし atlbase.h 等を利用するプロジェクトを C++Builder XE でビルドすると 以下のエラーが発生します 確かに XE には atl フォルダはありません... [BCC32 致命的エラー ] atlbase.h(xx): F1003 error 指令 : You must copy ATL files from an earlier version of C++Builder [$(BDS) include atl *.*] to use ATL 17

原因と解決策 A. C++Builder XE から ActiveX フレームワークは 旧バージョンで採用していた Active Template Library(ATL) ではなく Delphi ActiveX ライブラリ (DAX) を採用するよう変更されました DAX は 古くから Delphi に搭載されてきた ActiveX フレームワークです [docwiki ヘルプ : C++Builder は ActiveX と COM に DAX を使用する ] http://docwiki.embarcadero.com/radstudio/xe3/ja/c%2b%2bbuilder_%e3%81%af_ ActiveX_%E3%81%A8_COM_%E3%81%AB_DAX_%E3%82%92%E4%BD%BF%E7%94%A 8%E3%81%99%E3%82%8B 案 1. C++Builder XE で ActiveX プロジェクトを新規作成し直す ATL プロジェクトが DAX プロジェクトへ適切に変換されます ( 継続的なサポートが保証される ) 案 2. 旧バージョンの C++Builder から ATL 関連のファイルをコピー... include windows vcl vclhew.hpp... include windows sdk atl フォルダ全体 ( 継続的なサポートは保証されない ) 18

17 Th Developer Camp C++Builder Q4 19

ilink32 エラー Q. 旧バージョンの C++Builder のプロジェクトを C++Builder XE3 へ移行中です あるプロジェクトをビルドしたところ 以下のリンクエラーが発生しビルドに失敗します... 20

原因と解決策 A. CodeGuard を有効にしている古いプロジェクトを移行すると 以下の条件でリンクエラーが発生します C++Builder 2009 以降のバージョンでビルドし 且つ [ プロジェクト オプション...] [CodeGuard を有効にする ] が False になっている 案 1. 移行先のバージョン ( 例えば C++Builder XE3) の [ プロジェクト オプション ] の [CodeGuard を有効にする ] を True に設定する 案 2. 移行元のバージョン ( 例えば C++Builder6) で先に CodeGuard を無効にしてから プロジェクトを移行する 21

17 Th Developer Camp Q & A 22

17 Th Developer Camp もう 1 問 Q5 23

TListBox の Color プロパティ Q. Delphi 6 から Delphi 2007 へプロジェクトを移行中です TListBox の Color プロパティを変更するプログラムがあるのですが Delphi 6 と Delphi 2007 で挙動が異なります Delphi 6 では TListBox 全体の色が変更され Delphi 2007 では Item の色だけが変更されます... 24

原因と解決策 A. この症状は Delphi 7 から Delphi 2009 までの VCL に存在する不具合です Quality Central へ報告されており Delphi XE 以降で修正済みです http://qc.embarcadero.com/wc/qcmain.aspx?d=9147 Delphi 7 から Delphi 2009 を利用する方は Windows API の InvalidateRect 関数を呼び出して TListBox の背景色も含めた再描画を要求するコードを追加してください True が重要 25