2010-07-05 98 views
1

我想在应用程序中使用2个dll(OCX),但是当我想调用一个函数时,我该怎么做呢?在delphi中使用dll ocx

我怎么称呼这个功能 RSDKLib_TLB.IID_IMeasurement ....“TGUID”?

在DLL

IID_IMeasurement: TGUID = '{97E75BE0-AF26-4E4A-B651-C5DDECEC2936}'; 

或者是方法错了?

+0

我几乎没有使用COM的经验,所以我会把它放在注释中:你的OCX DLL实现了一个基于COM的控件;从Delphi转到组件 - >导入ActiveX,找到你的控制并导入它。 Delphi将生成所有必需的东西,将该控件放到组件托盘上,然后您可以将它放到表单上并使用它。当然,这可能会有无数的复杂情况,但我不是COM专家,所以我不知道。 – 2010-07-06 06:27:39

+0

你展示的东西根本不是一个功能。是什么让你觉得你应该*打电话给它?你在项目中使用什么参考材料? – 2010-07-06 15:41:31

回答

2

听起来像你可能需要一些基本的COM编程介绍。

听起来好像你已经导入了库。但是你需要学习如何调用可用的函数。

首先看看导入单元的底部(正好在执行关键字上方),您会发现几个名为CoXXX的类,其中XXX通常是您要创建的接口的名称。

和CoXXX班会是这样的:

CoXXX = class 
    class function Create: IXXX; 
    class function CreateRemote(const MachineName: string): IXXX; 
    end; 

因此,在您所提供的信息采取了猜测。

var 
M : IMeasurement; 
begin 
M := CoIMeasurement.Create 
M.MethodYouNeedToCall; 
end; 
+0

你是指在这里? /*********************************************** ********************** // // GUID在TypeLibrary中声明。继前缀用来: //类型库:LIBID_xxxx //组件类:CLASS_xxxx //调度接口:DIID_xxxx //非DISP接口:IID_xxxx – 2010-07-06 17:35:33

+0

这是该单元的实现部分之前。 – 2010-07-06 17:49:59

+0

我这样尝试 var M:IImage2Disp; 开始 M:= TIRSDK.Create; //这里我没有足够的实际参数为什么? M.TempUnit:= 1000; 结束; Thank's – 2010-07-06 23:39:48