uCosminexus Interschema ユーザーズガイド
互換APIの使用例を,次に示します。
#include <stdio.h> #include "ETtrans.h" static void print_message(int iCode, char *msg, ETTRANSERRLIST *ErrList); int main() { int iRet = 0; ETTRANSADRSLIST AdrsList[3]; ETTRANSERRLIST ErrList; char *c; /* アドレスリストの設定 */ AdrsList[0].FormatName = "IN"; AdrsList[0].DataKind = ET_DK_FILE; AdrsList[0].DataAddress = "input.txt"; AdrsList[1].FormatName = "OUT"; AdrsList[1].DataKind = ET_DK_FILE; AdrsList[1].DataAddress = "output.txt"; AdrsList[2].FormatName = NULL; /* トランスレータ初期化 */ iRet = ETtransInit(&c, NULL); if (iRet) { print_message(iRet, "ETtransInit", NULL); goto EXIT; } /* MDLローディング */ iRet = ETtransLoadMap(c, "SAMPLE.mdl"); if (iRet) { print_message(iRet, "ETtransLoadMap", NULL); goto END; } /* 変換実行 */ iRet = ETtransExec(c, AdrsList, NULL, "-IERR", ET_FA_UPDATE, ET_OP_FNOFF, &ErrList); if (iRet) { print_message(iRet, "ETtransExec", &ErrList); goto END; } /* MDLアンロード */ iRet = ETtransUnLoadMap(c); if (iRet) { print_message(iRet, "ETtransUnLoadMap", NULL); goto END; } END: /* 終了処理 */ iRet = ETtransEnd(c); if (iRet) { print_message(iRet, "ETtransEnd", NULL); } EXIT: printf("--> Return Code = 0x%08x\n", iRet); return iRet; } /* * エラー情報出力関数 */ static void print_message(int iCode, char *msg, ETTRANSERRLIST *ErrList) { int i; ETTRANSERRDATA *edata; printf("### ERROR %s %d ###\n", msg, iCode); if (ErrList) { printf(" Error Size = %d\n", ErrList->Size); for (i = 0; i < ErrList->Size; i++) { edata = &ErrList->ErrData[i]; printf("\t%02d (0x%08x) num=%d", edata->MessageNo, edata->ErrorLevel, edata->NumericData); if (edata->Information) { printf(" info=%s\n", edata->Information); } else { printf("\n"); } } } }
All Rights Reserved, Copyright (C) 2000, Information-technology Promotion Agency, Japan.
All Rights Reserved. Copyright (C) 2005, 2008, Hitachi, Ltd.
All Rights Reserved, Copyright (C) 1985-1998, Microsoft Corporation.