六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 284|回复: 0

AE安装检测(C++)

[复制链接]

升级  14.67%

20

主题

20

主题

20

主题

秀才

Rank: 2

积分
72
 楼主| 发表于 2012-10-25 00:55:24 | 显示全部楼层 |阅读模式
在MFC中使用AE(AO)进行二次开发时,当目标机器上若没有安装AE的Runtime,程序会直接挂掉。
对此,通过在CXXAppInitInstance()起始处增加环境的检测代码,来友好地提示用户安装AE的Runtime。
代码如下:
1 BOOL CMap2DApp::InitInstance() 2 { 3     CoInitialize(NULL); 4 5     try 6     { 7         IAoInitializePtr ipAoInitialize(CLSID_AoInitialize); 8         if (ipAoInitialize==NULL) 9         {10             MessageBox(NULL,"请先安装ArcGIS Engine Runtime!","Map 2D",MB_OK|MB_ICONEXCLAMATION);11             CoUninitialize();12             return FALSE;13         }14         esriLicenseStatus licenseStatus;15         HRESULT hr = ipAoInitialize->Initialize(esriLicenseProductCodeEngine,&licenseStatus);16         17         if (licenseStatus!=esriLicenseCheckedOut)18         {19             MessageBox(NULL,"请先安装ArcGIS Engine Runtime!","Map 2D",MB_OK|MB_ICONEXCLAMATION);20             CoUninitialize();21             return FALSE;22         }23     }24     catch (...)25     {26         MessageBox(NULL,"请先安装ArcGIS Engine Runtime!","Map 2D",MB_OK|MB_ICONEXCLAMATION);27         CoUninitialize();28         return FALSE;29     }30 }
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表