ZRX开发手册

5) 在工程属性对话框的“C/C++-->Language(语言)--> Treat wchart_t as Built-in Type(将wchar_t视为内置类型)”,确保选项为“No(否)”

6) 增加包含头文件,在预编译头文件“stdAfx.h”文件末尾处里添加以下代码: #include \

7)打开新建工程的.def文件, 增加程序入口函数的导出,代码如下所示: EXPORTS

zcrxEntryPoint

PRIVATE

3. 为程序装载命令和定义实现函数,可按照如下的方式进行实现: 1) 添加ZRX程序入口点函数, 在.cpp文件里添加如下代码:

extern \

zcrxEntryPoint(ZcRx::AppMsgCode msg, void* pkt) {

switch (msg)

}

{

case ZcRx::kInitAppMsg:

zcrxDynamicLinker->unlockApplication(pkt); zcrxRegisterAppMDIAware(pkt); initApp(); break;

case ZcRx::kUnloadAppMsg:

unloadApp(); break;

default: }

return ZcRx::kRetOK;

break;

2)添加装载命令代码,相应地添加对应的卸载命令代码,如下所示:

void initApp() { }

void unloadApp() { }

// unload commands

zcedRegCmds->removeGroup(\

// register a command with the ZWCAD command mechanism zcedRegCmds->addCommand(\

\\

ZCRX_CMD_TRANSPARENT, drawSimpleLine);

3) 定义命令函数,如下所示:

void drawSimpleLine() { }

// define drawSimpleLine() function and implement it …

4. 完成上述步骤后,将整个工程进行编译链接,生成结果程序文件(.dll)。

说明:

1. 如果使用ZrxWizards来创建ZRX工程, 上述的大部分步骤可以省掉;

2. 上述过程更详细的可以参考ZRXSDK\\Samples\\目录下示例程序“SimpleLine” 。

程序入口和命令定制

ZRX提供以下两种应用程序入口的方式, 开发用户可以使用其中任意一种方式对自己的ZRX应用程序入口进行导出和命令定制:

程序入口方式一:导出入口函数“zcrxEntryPoint” 1) 定义程序入口函数

extern \

zcrxEntryPoint(ZcRx::AppMsgCode msg, void* pkt) { }

switch (msg) {

case ZcRx::kInitAppMsg:

zcrxDynamicLinker->unlockApplication(pkt); zcrxRegisterAppMDIAware(pkt); initApp(); break;

case ZcRx::kUnloadAppMsg:

unloadApp(); break;

default: }

return ZcRx::kRetOK;

break;

2)添加装载和卸载函数,创建命令,

void initApp() {

// register a command with the ZWCAD command mechanism zcedRegCmds->addCommand(\

\\

ZCRX_CMD_TRANSPARENT,

}

drawSimpleLine);

void unloadApp() { }

// unload commands

zcedRegCmds->removeGroup(\

3) 定义命令函数,如下所示:

void drawSimpleLine() { }

// define drawSimpleLine() function and implement it …

程序入口方式二:从ZcRxZrxApp派生应用类 1)从ZcRxZrxApp派生应用程序类

// Application Entry Point

class CmdEntryApp : public ZcRxZrxApp { public:

virtual void RegisterServerComponents () {

virtual ZcRx::AppRetCode On_kUnloadAppMsg (void *pkt) { }

ZcRx::AppRetCode retCode =ZcRxZrxApp::On_kUnloadAppMsg (pkt) ; // TODO: Unload dependencies here return (retCode) ;

virtual ZcRx::AppRetCode On_kInitAppMsg (void *pkt) { }

ZcRx::AppRetCode retCode =ZcRxZrxApp::On_kInitAppMsg (pkt) ; // TODO: Add your initialization code here

return (retCode) ;

联系客服:779662525#qq.com(#替换为@)