仍旧使用 92 olb 生成的头文件,
代码按照以前方式编写,
在检出授权时, 报告错误, DbgView 显示, 没有绑定到任何产品.
查看文档: http://help.arcgis.com/EN/sdk/10.0/ArcO … 0nmm000000
得知原因.
执行以下步骤:
在安装了 arc 10 的机器上编写以下文件:
#import "libid:6FCCEDE0-179D-4D12-B586-58C88D26CA78" raw_interfaces_only no_implementation
int main()
{
return 0;
}
编译这个文件, 会生成 ArcGISVersion.tlh 文件.
将 ArcGISVersion.tlh 修改为自己需要的方式,
引入工程.
在代码中, 捡出授权前, 执行以下操作, 绑定到某个产品:
//arc 10
{
CSmartPtr<esri10::IArcGISVersion> verMan;
HRESULT hr = verMan.CoCreateInstance(__uuidof(esri10::VersionManager));
if (SUCCEEDED(hr)) {
VARIANT_BOOL f;
hr = verMan->LoadVersion(esri10::esriArcGISEngine, _bstr_t(_T("10.0")), &f);//10 不行, 10.0 才行
if (SUCCEEDED(hr)) {
OutputDebugStringFmt(_T("LoadVersion for esriArcGISEngine OK, result: %s"), (f==VARIANT_TRUE)?_T("true"):_T("false"));
} else {
OutputDebugStringFmt(_T("LoadVersion failed"));
}
} else {
// 创建失败, 说明没有安装 arc 10 系列
// 这里可以接收
}
}
其他代码不变.