创建命令行客户端的基本程序大纲
main(int argc, char* argv[])
{
/*LINE 001*/ MODNAME("main:appname");
/*LINE 002*/ 定义程序变量;
/*LINE 003*/ dstat = clInitMB2(argc, &argv, NULL); //必须在这里调用
/*LINE 004*/ if (不是GUI模式)
/*LINE 005*/ dstat = uiInitializeShowTextNotify (myShowText); //(可选)为uiShowText注册回调函数
/*LINE 006*/ dstat = clTestNetwork (); //必须 检查Metaphase Network
/*LINE 007*/ dstat = clInitialize2 (TRUE); //必须 初始化命令行会话
/*LINE 008*/ if (不是GUI模式) //此区段可选(如无此区段,使用Trusted user session)
/*LINE 009*/ {
/*LINE 010*/ if (提供了usrName和password)
/*LINE 011*/ {
/*LINE 012*/ dstat = clLogin2 (usrName, password, &stat); // login OMF server
/*LINE 013*/ dstat = smGetSessionUsrName (&usrName); // (用于其他方面)获取当前会话的用户名
/*LINE 014*/ }
/*LINE 015*/ }
/*LINE 016*/ if (GUI模式)
/*LINE 017*/ {
/*LINE 018*/ dstat = clInitGUISvc2 (&mfail); //(如果是GUI模式)必须,初始化GUI server
/*LINE 019*/ }
/*LINE 020*/ if (捕获模式) //此区段可选
/*LINE 021*/ {
/*LINE 022*/ dstat = uiSetCaptureFile(capFileName); //(此区段必须) 设置捕获文件(必须)
/*LINE 023*/ uiSetCaptureOn (); //(此区段必须) 打开捕获开关
/*LINE 024*/ }
/*LINE 025*/ dstat = smSetSessionLocale (locale); //(必须) 设置会话对象的区域属性(if *local==NULL, 则为英文环境)
/*LINE 026*/ 这里开始做与业务相关的事情
/*LINE 027*/ dstat = clReleaseServers (); // (必须)释放消息服务
/*LINE 028*/ CLEANUP:
/*LINE 029*/ if (someObjectPtr != NULL) objDisposeAll(someObjectPtr); // 释放对象内存
/*LINE 030*/ if (someSqlPtr != NULL) objSqlDispose(someSqlPtr); // 释放SQL对象内存
/*LINE 031*/ clLogout(); // (Required)logout from OML server
/*LINE 032*/ clTerminate(); // (Required)Terminates custom command line session.
/*LINE 033*/ EXIT:
/*LINE 034*/ if (!DSOK) uiShowFatalError(dstat, WHERE); //(Required)
/*LINE 035*/ exit (DSOK ? EXIT_SUCCESS/*it's 0*/ : EXIT_FAILURE/*it's 1*/); //(Required)
/*LINE 036*/ return dstat; //(Required)
}
{
/*LINE 001*/ MODNAME("main:appname");
/*LINE 002*/ 定义程序变量;
/*LINE 003*/ dstat = clInitMB2(argc, &argv, NULL); //必须在这里调用
/*LINE 004*/ if (不是GUI模式)
/*LINE 005*/ dstat = uiInitializeShowTextNotify (myShowText); //(可选)为uiShowText注册回调函数
/*LINE 006*/ dstat = clTestNetwork (); //必须 检查Metaphase Network
/*LINE 007*/ dstat = clInitialize2 (TRUE); //必须 初始化命令行会话
/*LINE 008*/ if (不是GUI模式) //此区段可选(如无此区段,使用Trusted user session)
/*LINE 009*/ {
/*LINE 010*/ if (提供了usrName和password)
/*LINE 011*/ {
/*LINE 012*/ dstat = clLogin2 (usrName, password, &stat); // login OMF server
/*LINE 013*/ dstat = smGetSessionUsrName (&usrName); // (用于其他方面)获取当前会话的用户名
/*LINE 014*/ }
/*LINE 015*/ }
/*LINE 016*/ if (GUI模式)
/*LINE 017*/ {
/*LINE 018*/ dstat = clInitGUISvc2 (&mfail); //(如果是GUI模式)必须,初始化GUI server
/*LINE 019*/ }
/*LINE 020*/ if (捕获模式) //此区段可选
/*LINE 021*/ {
/*LINE 022*/ dstat = uiSetCaptureFile(capFileName); //(此区段必须) 设置捕获文件(必须)
/*LINE 023*/ uiSetCaptureOn (); //(此区段必须) 打开捕获开关
/*LINE 024*/ }
/*LINE 025*/ dstat = smSetSessionLocale (locale); //(必须) 设置会话对象的区域属性(if *local==NULL, 则为英文环境)
/*LINE 026*/ 这里开始做与业务相关的事情
/*LINE 027*/ dstat = clReleaseServers (); // (必须)释放消息服务
/*LINE 028*/ CLEANUP:
/*LINE 029*/ if (someObjectPtr != NULL) objDisposeAll(someObjectPtr); // 释放对象内存
/*LINE 030*/ if (someSqlPtr != NULL) objSqlDispose(someSqlPtr); // 释放SQL对象内存
/*LINE 031*/ clLogout(); // (Required)logout from OML server
/*LINE 032*/ clTerminate(); // (Required)Terminates custom command line session.
/*LINE 033*/ EXIT:
/*LINE 034*/ if (!DSOK) uiShowFatalError(dstat, WHERE); //(Required)
/*LINE 035*/ exit (DSOK ? EXIT_SUCCESS/*it's 0*/ : EXIT_FAILURE/*it's 1*/); //(Required)
/*LINE 036*/ return dstat; //(Required)
}
命令行客户端程序的***mk.def文件
////////////////////////
// INCLUDES
// INCLUDES
*ELSEIF NT_OS
INCLUDES = \
-I$(UI)\include \
-I$(OSDIR)\include \
-I$(SM)\include \
-I$(USC)\include \
-I$(CSA)\include \
-I$(DDBDIR)\include \
-I$(METADB)\include \
-I$(APC)\include \
-I$(OMF)\include \ // %MTI_ROOT%\SUPPORT\OMF\Include 目录
-I$(PRODUCT_BASE)\include // 客户化目录\dir\include 目录
*IFEND
INCLUDES = \
-I$(UI)\include \
-I$(OSDIR)\include \
-I$(SM)\include \
-I$(USC)\include \
-I$(CSA)\include \
-I$(DDBDIR)\include \
-I$(METADB)\include \
-I$(APC)\include \
-I$(OMF)\include \ // %MTI_ROOT%\SUPPORT\OMF\Include 目录
-I$(PRODUCT_BASE)\include // 客户化目录\dir\include 目录
*IFEND
////////////////////////
// LIBS
// LIBS
REM OMF libraries
set LIBS=%OMF%\lib\libomfcl.lib
set LIBS=%LIBS% %PRODUCT_BASE%\lib\libbbkcl.lib // 添加客户化目录\dir\lib\lib***cl.lib链接文件
set LIBS=%OMF%\lib\libomfcl.lib
set LIBS=%LIBS% %PRODUCT_BASE%\lib\libbbkcl.lib // 添加客户化目录\dir\lib\lib***cl.lib链接文件