导航

命令行客户端程序编制和编译设置

Posted on 2006-06-10 15:32  hcfalan  阅读(415)  评论(0编辑  收藏  举报
创建命令行客户端的基本程序大纲
 
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)
}
 

命令行客户端程序的***mk.def文件
 
////////////////////////
// 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
 
////////////////////////
// LIBS
 
REM OMF libraries
set LIBS=%OMF%\lib\libomfcl.lib
set LIBS=%LIBS% %PRODUCT_BASE%\lib\libbbkcl.lib // 添加客户化目录\dir\lib\lib***cl.lib链接文件