GetObject函数之深度探讨、请教(100分)

  • 主题发起人 netexplorer
  • 开始时间
N

netexplorer

Unregistered / Unconfirmed
GUEST, unregistred user!
delphi中有三个比较相似的函数
GetActiveOleObject function
createcomobject
CreateOleObject
请问这三个函数除了调用参数接口不同之外,还有什么其它差别呢?

另外,还是上次提到的那个问题,依旧没有解决。有一段asp页面处理程序,具体代码如下:
strMoniker = strWorkflowID & "/SendFile" //'strMoniker是一字符串,可能是这种形式: “sked://computer98!XLANG Scheduler/{8A0209AB-899E-4362-BA25-1368F03953BC}”
Set objPort = GetObject(strMoniker) //这句代码根据strMoniker“得到”可以调用的对象
objPort.inputfile(xmldoc.xml) //这句代码调用该对象的inputfile方法
Set objPort = Nothing //释放该对象

我想把这段代码改造为delphi的代码,应该是可以的吧:)
关键的地方就是我在在delphi中找不到和asp中的GetObject相对应的函数。我把上面这三个函数都试了一编,都报同样一个错误,大概意思是说传进来的参数,也就是strMoniker不是一个合法的类型名或GUID值,也就是说操作系统在注册表里面找不到对应的com组件。我很奇怪,为什么asp能够找到,而delphi就找不到呢?

还请各位大虾给小弟个说法:)

另,这个问题出现的具体背景:调试改造BizTalk 的调度程序。win2000 ad,biztalk 2002 server,delphi7,MSMQ。

 
asp和delphi的GUID的算法是不一样的,但是和GetObject没什么关系的呀,所以我也纳闷中
 
你在delphi中怎么写的呢?
不会是把sked://computer98!XLANG Scheduler/{8A0209AB-899E-4362-BA25-1368F03953BC}
都当成GUID吧....[:D]
 
我先收藏,哪位大侠能给个解释?
up
 
to rockjie:
我调用的时候的确是把这一整串字符全部作为guid来调用的[:D]。
因为在asp中也是这样调用的阿。
接着,我只使用其中看起来象guid的部分,{8A0209AB-899E-4362-BA25-1368F03953BC}
还是出现同样的错误,并且注意到{8A0209AB-899E-4362-BA25-1368F03953BC}的后面还有一部分,即"/SendFile",我反复试了n遍,都不成功,
并且在注册表中也没有搜索到{8A0209AB-899E-4362-BA25-1368F03953BC}的信息。
如果asp的算法真的和delphi是不一样的,那如何在delphi中实现asp的这种功能呢?
 
大家别老是关注阿,给点意见行不行[:D]拜托拜托也[:D]
 
{8A0209AB-899E-4362-BA25-1368F03953BC}都没找到?!不可能吧!
你看了vb的getobject的说就知道了!
 
真的是没有找到阿,是不是很郁闷呢,我估计这个{8A0209AB-899E-4362-BA25-1368F03953BC}
并不是一个guid,什么意思呢,这是一个内部的号码,并不存储在注册表里面,真正起作用的是sked://computer98!XLANG Scheduler/,get这个object之后,这个object再去某个地方找到类似guid的字符串所对应的信息。
 
{8A0209AB-899E-4362-BA25-1368F03953BC}
guid的语法:
const
myguid : Tguid ='{8A0209AB-899E-4362-BA25-1368F03953BC}';

 
顶部