Could not bind to a valid ArcGIS installation问题的解决

这个错误我是找了好多天才找到了

 

AE(ArcgisEngine)在用VC环境进行开发时,对license的初始化失败,

并在VC的编译输出窗口中提示Could not bind to a valid ArcGIS installation

是因为VC没找到Arcgis Engine的安装位置,参考官网的介绍(好不容易找到的)

http://help.arcgis.com/EN/sdk/10.0/ArcObjects_NET/conceptualhelp/index.html#//000100000nmm000000

Loading an ArcGIS runtime

Stand-alone ArcGIS applications must locate an appropriate ArcGIS product installation before any ArcObjects code (including license initialization) is called. You must decide what runtime is needed for the application. This must be done whether the license initialization is carried out using the LicenseControl or by using the AoInitialize class. The application programming interfaces (APIs) used to bind to the ArcGIS runtime are in IArcGISVersion in the ArcGISVersionLib namespace. To bind to the runtime, make a call to the LoadVersion method. See the following code example:

 

对于独立的Arcgis 应用程序必须先绑定一个runtime,方法如下

// Load the ArcGISVersion library.

// This code is commonly placed in the StdAfx.h header file.

//这段代码放到stdafx.h里(或者放到主要的头文件中)

#import "libid:6FCCEDE0-179D-4D12-B586-58C88D26CA78" raw_interfaces_only no_implementation

--------------------------------------分割线--------------------------------------------------------------

// The following code can be used to bind to ArcGIS Engine Runtime:

//下面的代码要加在::AoInitialize(NULL);之后,IAoInitializePtr ipInit(CLSID_AoInitialize);之前

ArcGISVersionLib::IArcGISVersionPtr ipVer(__uuidof(ArcGISVersionLib ::VersionManager));

VARIANT_BOOL succeeded;

if (FAILED(ipVer->LoadVersion(ArcGISVersionLib::esriArcGISEngine, L "10.0", &succeeded))) ‍

return 0;

------------------------------

例如 main.cpp

#import "libid:6FCCEDE0-179D-4D12-B586-58C88D26CA78" raw_interfaces_only no_implementation

‍#include <ArcSDK.h>
#include <iostream>
#include <stdlib.h>
using namespace std;
int LocateTheArcgisVersion()
{
ArcGISVersionLib::IArcGISVersionPtr ipVer(__uuidof(ArcGISVersionLib::VersionManager));
VARIANT_BOOL succeeded;
if (FAILED(ipVer->LoadVersion(ArcGISVersionLib::esriArcGISEngine, L"10.0",&succeeded)))
return 0;
return 1;
}
int main(int argc, char **argv)
{

::AoInitialize(NULL);
LocateTheArcgisVersion();
// ArcGIS Engine licensing
IAoInitializePtr ipInit(CLSID_AoInitialize);
esriLicenseStatus status;

ipInit->Initialize(esriLicenseProductCodeEngine,&status);
if(status == esriLicenseCheckedOut)
{
cout<<"lisense ok"; 
}


::AoUninitialize();
system("PAUSE");
AoExit(0);
return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值