技術情報(よくあるご質問と回答)
ご質問
GENWARE2で開発したソフトウェア資産はGENWARE3で活用できますか?制約事項は何かありますか?
回答
活用可能です。ただし、以下の制約事項がございます。
①GENWARE2で生成したソースファイルとGENWARE3で生成したソースファイルでは、ファイル名が異なります。
対応するファイルは以下の通りです。
GENWARE2 | GENWARE3 |
---|---|
guserevent.h | GUserEvent.h |
GSampleScreen.c | G[プロジェクト名]Screen.c |
GSampleScreen.h | G[プロジェクト名]Screen.h |
GSampleScreen.prc | G[プロジェクト名]Screen.prc |
Gloc_[ロケール名].c | GResString[ロケール名].c |
GResourceImage.c | - |
上記のソースにユーザコードが記述されている場合、記述箇所の変更が必要になります。
②GENWARE2で生成したソースファイルに対して、GENWARE3を使い「追記」で自動生成すると、一部ソース内に自動生成されず残ってしまう変更点があります。
1.includeの追加

上図ソース例の赤枠で囲まれたincludeを追加する必要があります。
- #include “gtextboxex.h”
- #include “gnumbmp.h”
- #include “GControlID.h”
- #include “gcachetext.h”
- #include “GScript.h”
- #include "GScript_def.h
- #include "gevent.h"
- #include “GDBObject.h”
青枠で囲まれたincludeは変更の必要があります。
#include “GSampleScreen.h” → #include “G[プロジェクト名]Screen.h”
#include “GSampleScreen.prc” → #include “G[プロジェクト名]Screen.prc
ファイル種別 | 追加(修正)内容 |
---|---|
パネルのソースファイル | #include “gtextboxex.h” #include “gnumbmp.h” #include “GControlID.h” #include “gcachetext.h” #include “GScript.h” #include “GDBObject.h” #include “G[プロジェクト名]Screen.h” |
G[プロジェクト名]Screen.c | #include “G[プロジェクト名]Screen.h” #include “gtextboxex.h” #include “gnumbmp.h” #include “gcachetext.h” #include “GScript.h” #include “GDBObject.h” #include “G[プロジェクト名]Screen.prc” |
G[プロジェクト名]Screen.h | #include "GUserEvent.h" #include "GScript_def.h" |
G[プロジェクト名].h | #include “GDBObject.h” |
※パネルのソースファイル・・・通常のパネル、またウインドウ、フレーム上のパネルを含む全てのパネルに関するソースファイル。(GPanel00000.c、GPanel00000Frame00000Panel00000.c、GWindow00000Panel00000.cなど)
()内はデフォルト名でパネル・ビューフレーム・ウインドウを作成し生成した場合のファイル名例。
2.GetChildAt関数の追加
パネルのソースファイル内に以下の関数を追記する必要があります。
GBaseWindow* G[パネル名]_GetChildAt( void *pSelf, unsigned short usIdx )
{
if( (sizeof(pProperty)/sizeof(GBaseWindowProperty*)) > usIdx ){
return ((G[パネル名]*)pSelf)->m_pObjectTable[usIdx];
}else{
return NULL;
}
}
3.m_pObjectTable定義の追加
パネルのヘッダーファイル内に以下の記述を追記する必要があります。
GDefClass( G[パネル名], GPanel )
//{{NATIVE_OBJECT_TABLE
GBaseWindow* m_pObjectTable[[オブジェクト数]];
//}}NATIVE_OBJECT_TABLE
GDefEnd
4.GEventMessage構造体の変更
G[プロジェクト名].c内のGEventMessage構造体内の変数名が変更されています。
GENWARE2:
if( msg.usMessage == GM_QUIT ){
GWGetVmt( G[プロジェクト名]Screen_VMT,(G[プロジェクト名]Screen*)GWGetScreen())
->SetExitStatus( GWGetScreen(), TRUE );
break;
}
GENWARE3:
if( msg.ulMessage == GM_QUIT ){
GWGetVmt( G[プロジェクト名]Screen_VMT,(G[プロジェクト名]Screen*)GWGetScreen())
->SetExitStatus( GWGetScreen(), TRUE );
break;
}
③ユーザ記述部分の修正
コントロールIDの命名規則が変更されています
GENWARE2の場合:[パネルID]_[コントロールID]
↓
GENWARE3の場合:[コントロールID]
(例)
GENWARE2の場合:GPANEL00000_GBUTTON00000
↓
GENWARE3の場合:GBUTTON00000
MEMO
上記の修正を実施しても、画面遷移機能、GUIシナリオ機能は使用することはできません。
対象製品バージョン:-
管理番号:FG_G10022
資料更新日: 2008年8月25日
※この資料は、資料更新日現在のものです。