用ao二次开发,做出来东西不仅要arcgis runtime支持 ,而且还会去验证你的license是否有效。如果不想让它弹出来一系列难看的框框的话,需要做如下工作(以arcinfo为例):
BOOL CPrjApp::EsriInitialize()
...{
CoInitialize(NULL);
![]()
CComPtr<IAoInitialize> pAoInitialzie;
esriLicenseStatus Status;
HRESULT hr;
![]()
hr=pAoInitialzie.CoCreateInstance(CLSID_AoInitialize);
// 如果不具有读写许可则,使用只读许可
![]()
pAoInitialzie->IsProductCodeAvailable(esriLicenseProductCodeArcInfo,&Status);
![]()
if(Status == esriLicenseAvailable)
...{
hr=pAoInitialzie->Initialize(esriLicenseProductCodeArcInfo,&Status);
}
![]()
if(Status != esriLicenseCheckedOut)
...{
AfxMessageBox("本机没有合适的ArcGIS授权,请与管理员联系!");
![]()
return FALSE;
}
return TRUE;
}
本文介绍了使用AO进行二次开发时如何验证License的有效性,并通过示例代码展示了如何避免因License验证失败而弹出错误消息框的方法。



CoInitialize(NULL);
}
}
1747

被折叠的 条评论
为什么被折叠?



