起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: hdwt

第三方控件GIS 转换出错**

[复制链接]
发表于 2007-4-26 16:31:53 | 显示全部楼层
平台中,只能使用
回复 支持 反对

使用道具 举报

发表于 2007-4-26 16:35:17 | 显示全部楼层
平台中,只能使用
type
  IMyInterface = interface
    ['{FEBFE7B0-4B94-4565-A6AB-9CD9CFC5FCB4}']
声明的接口,即:带GUID标识的,不支持 不带GUID标识的接口调用
如:
type
  IMyInterface1 = interface
的声明的接口调用是会在运行期出错的!
所的要使用这样的接口只能在delphi中进行封装为类后,再调用
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-26 16:54:51 | 显示全部楼层
X3平台的2323版本开始支持接口,之前的版本需要在导入之前封装成对象来使用
我用的现在是2619
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-27 09:07:14 | 显示全部楼层
能再给说得具体点么
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-27 09:24:54 | 显示全部楼层
在 esriGeoDatabase_TLB单元
这已经带了呀
IWorkspaceFactory = interface(IUnknown)
    ['{F173FC16-D63A-11D1-AA81-00C04FA33A15}']
回复 支持 反对

使用道具 举报

发表于 2007-4-27 10:57:17 | 显示全部楼层
class function CoSdeWorkspaceFactory.Create: IUnknown;
begin
  Result := CreateComObject(CLASS_SdeWorkspaceFactory) as IUnknown;
end;
平台上不支持class方法,只支持static的方法,所以请你把这个函数的语句直接写到平台上,不要调用这个函数
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-27 11:00:41 | 显示全部楼层
终于等到人了,先谢谢了,我试试
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-27 11:30:02 | 显示全部楼层
alang:
不知道怎么写:CreateComObject;CLASS_SdeWorkspaceFactory,这些东西都要引进来么?
还有类似这样的问题很多,我不可能把ARCGIS中所有的CLASS都写到平台里来呀,有可能是其它错误么
回复 支持 反对

使用道具 举报

发表于 2007-4-27 11:32:28 | 显示全部楼层
CreateComObject这个方法在平台上就有,你用StudioHelp看看这个函数
CLASS_SdeWorkspaceFactory这个变量你用 空间名.单元名.CLASS_SdeWorkspaceFactory 就可以了
回复 支持 反对

使用道具 举报

发表于 2007-4-27 11:33:44 | 显示全部楼层
NameSpace: Business.System    ClassDelcare: Business.System.ComObj
--------------------------------------------------------------------------------
static function CreateComObject(ClassID: TGUID): TObject;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-19 23:55 , Processed in 0.040512 second(s), 13 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表