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) ;