我在VC中创建了一个OCX对象,然后把该对象以指针形式传给了Delphi的动态库,中间以pointer传递。我想问的是:
1)Delphi得到的指针合法吗?
2)如果合法其函数怎样调用?
举例:
在VC中ocx类CMyOCX 则
有一对象CMyOCX m_MyOcx,在OnCreate中m_MyOCX.Create(XXX,XXX,XXXX),对象合法其函数也可用,然后
VC程序调用Delphi作的Dll的函数将该对象以指针形式传给Delphi:
SetPoint(&m_MyOcx);
在Delphi中将OCX控件导入工程,得到_DMyOCX类,定义其指针类型
PDMyOCX = ^_DMyOCX;
定义其全局变量: gMyOCX:PDMyOCX; function SetPoint(pInterface:pointer) :integer; stdcall;
begin
if (pInterface<>nil) then
begin
gMyOCX = PDMyOCX(pInterface); …………………………………… 1)
if (gMyOCX <> nil) then
begin
gMyOCX^.XXXX(XXX,XXXX); //调用其函数 …………………………………… 2)
end
end
end
1)Delphi得到的指针合法吗?
2)如果合法其函数怎样调用?
举例:
在VC中ocx类CMyOCX 则
有一对象CMyOCX m_MyOcx,在OnCreate中m_MyOCX.Create(XXX,XXX,XXXX),对象合法其函数也可用,然后
VC程序调用Delphi作的Dll的函数将该对象以指针形式传给Delphi:
SetPoint(&m_MyOcx);
在Delphi中将OCX控件导入工程,得到_DMyOCX类,定义其指针类型
PDMyOCX = ^_DMyOCX;
定义其全局变量: gMyOCX:PDMyOCX; function SetPoint(pInterface:pointer) :integer; stdcall;
begin
if (pInterface<>nil) then
begin
gMyOCX = PDMyOCX(pInterface); …………………………………… 1)
if (gMyOCX <> nil) then
begin
gMyOCX^.XXXX(XXX,XXXX); //调用其函数 …………………………………… 2)
end
end
end
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货