我在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后不是就有对应的类了嘛?(控件面板上应该已经有了图标了)使用方式和delphi已有的其他类或控件一样的了
      

  2.   

    Delphi中引入的,大部分都是VC创建的ActiveX。连Office和IE都能引入,你这个只要不是搞得太蹩脚,应该是能够引入的。当然,我好想听人说起过,某个ActiveX里面有关函数叫做“do”,引入失败。
      

  3.   

    指针不合法,要传传IDispatch接口。