INTERNATIONAL LABORATORY CORPORATION


サポート > GENWARE3 サポート > 技術情報(よくあるご質問と回答) >

GENWARE2からの互換性について

組込みGUI統合開発環境 GENWARE3(ジェンウェアスリー) サポート

技術情報(よくあるご質問と回答)

ご質問

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を追加する必要があります。

    1. #include “gtextboxex.h”
    2. #include “gnumbmp.h”
    3. #include “GControlID.h”
    4. #include “gcachetext.h”
    5. #include “GScript.h”
    6. #include "GScript_def.h
    7. #include "gevent.h"
    8. #include “GDBObject.h”
      青枠で囲まれたincludeは変更の必要があります。
      #include “GSampleScreen.h” → #include “G[プロジェクト名]Screen.h”
      #include “GSampleScreen.prc” → #include “G[プロジェクト名]Screen.prc
includeの変更/ 追加内容
ファイル種別 追加(修正)内容
パネルのソースファイル #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日

※この資料は、資料更新日現在のものです。


ページTOPへ

ILC商品一覧