起步软件技术论坛-X3

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

【搞定】X3下导入Dll运行时错误[请求][请求]

[复制链接]
发表于 2007-5-25 17:00:41 | 显示全部楼层
在Delphi下,执行代码
var
  i: CMapXLayers;
begin
  i := CreateComObject(CLASS_Layers) as CMapXLayers;

出现错误提示

1.gif

25.96 KB, 下载次数: 64

回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-25 17:04:41 | 显示全部楼层
你用的环境Xp?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-25 17:12:32 | 显示全部楼层
你的mapx安装了,可能要破解,在文件夹下有,把它放到你安装的文件夹下,运行选择5.0的就
好,先试一下,没有下面这行字

未标题-1 拷贝.gif

3.47 KB, 下载次数: 62

回复 支持 反对

使用道具 举报

发表于 2007-5-25 17:27:29 | 显示全部楼层
81楼搞错了,在Delphi中执行
var
  i: CMapXPoints;
begin
  i := CreateOleObject('MapX.Points') as CMapXPoints;
也是出错

写成
var
  i: CMapXPoints;
begin
  i := CreateOleObject('MapX.Points.5') as CMapXPoints;
就好了,应该是这个控件自己不好,必须带版本号才行
回复 支持 反对

使用道具 举报

发表于 2007-5-25 18:07:34 | 显示全部楼层
在平台上写
  o := Business.System.ComObj.CreateOleObject('MapX.Point.5') as IUnknown;
可以,但是写成
  o := Business.System.ComObj.CreateOleObject('MapX.Point.5') as CMapXpoints;
就会出错,因此需要在Delphi中把这个调用包装成一个函数,然后在平台上调用
回复 支持 反对

使用道具 举报

发表于 2007-5-25 18:09:07 | 显示全部楼层
例如:在
function CoPointsCreate: CMapXPoints;
begin
  Result := CreateComObject(CLASS_Points) as CMapXPoints;
end;

在平台上就可以这样调用了
var
  i: CMapXpoints;
begin
  i := JustepExt.MapXLib_TLB.CoPointsCreate;
  Dialogs.Showmessage(SysUtils.IntToStr(i.Count));
回复 支持 反对

使用道具 举报

发表于 2007-5-25 18:12:18 | 显示全部楼层
附件是我包装好的dll bpl 还有X3中做的例子

mapx.rar

101.67 KB, 下载次数: 43

回复 支持 反对

使用道具 举报

发表于 2007-5-25 18:27:51 | 显示全部楼层
例子中的代码,执行出现如下错误
所以第二个问题无法验证了
{问题231: newPoint.Set_(rect.XMin , rect.YMin );  时出错
   前面的
     newPoint := CMapXpoint(CoPoint.Create) ;
     newPoints := CMapXpoints(CoPoints.Create) ;
    在delphi中是
     newPoint := CoPoint.Create ;
     newPoints := CoPoints.Create ;
    平台下不用类型转换会出错
    }

1.gif

19.72 KB, 下载次数: 105

回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-28 08:40:03 | 显示全部楼层
我就感觉有点怪怪的,我先试一试!真是感激不尽,对了,你就是阿狼吧。
回复 支持 反对

使用道具 举报

发表于 2007-5-28 08:51:02 | 显示全部楼层
我是阿朗,不是阿狼
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-11 06:54 , Processed in 0.039056 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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