用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;
}