使用产品: SuperMap 8C SP1 操作系统:win10 x64
数据类型: 文件型sdb后缀
已经生成了可运行程序,但是在调试中,发生无法创建数据源错误
#include "Gis.h"
#include "commonprogress.h"
#include <iostream>
#include <fstream>
#include "qmapcontrol.h"
//引用所需的Qt库
#include <QtWidgets/QMessageBox>
#include <QtWidgets/QFileDialog>
#include "translator.h"//引用QMapControl工程中的头文件
#include "Workspace/UGWorkspace.h"//引用iObjects C++组件中的工作空间UGWorkspace头文件
#include "Map/UGMap.h"//引用iObjects C++组件中的UGMap.h头文件
...................................
/*********************************************************************
**函数名称:newProject
**函数功能:新建工程
**输入参数:工作空间
**输出参数:无
**返回值:bool
*********************************************************************/
bool Gis::newProject(QAxWidget *&workspace,std::vector<std::pair<PriPoint, unsigned> > PointList,std::vector<Point> RegionList,int ProjectionNO)
{
activeAction->setText(ProName);
if(!dsCreate(workspace))//创建数据源,在这里里面还没有数据,只是空间里保存着数据的路径
{
QMessageBox::about(this, gbk_codec->toUnicode("错误"), gbk_codec->toUnicode("无法创建数据源!"));
return false;
}
if(!mapCreate())
{
QMessageBox::about(this, gbk_codec->toUnicode("错误"), gbk_codec->toUnicode("无法创建地图控件!"));
return false;
}
if(!mapConnect(workspace))
{
QMessageBox::about(this, gbk_codec->toUnicode("错误"), gbk_codec->toUnicode("地图无法连接到数据源!"));
return false;
}
......................................
/*********************************************************************
**函数名称:dsCreate
**函数功能:创建数据源
**输入参数:工作空间
**输出参数:无
**返回值:bool
*********************************************************************/
bool Gis::dsCreate(QAxWidget *&workspace)
{
DataSource = workspace->querySubObject("CreateDatasource(string, string, seEngineType ,""bool, bool, bool, string)",
"C:\\tempGis\\LTE" + ProName + ".sdb", ProName, 14, false, false, false, "");
if(!DataSource)
{
return false;
}
return true;
}
每次运行到querysubobject返回的都是NULL