我对C++不会,请各位大佬帮我将以下C++代码转为Delphi代码,多谢!#import "d:\CVSMS.dll"private: System::Void button1_Click(System::Object *  sender, System::EventArgs *  e)
 {
 ::CoInitialize(NULL);
 HRESULT hr = 0;
 IClassFactory *pCF;
 CVSMSLib ::ISender *pTC;
 hr = CoCreateInstance(_uuidof(CVSMSLib::Sender),NULL, CLSCTX_INPROC_SERVER,
 _uuidof(CVSMSLib::ISender),(void**)&pTC);
 if (hr == S_OK)
 {
 pTC->SendByPhoneNumber("pushv20", "Hii", "", "13564319836", 1, 1);
 pTC->Release();
 }
 ::CoUninitialize();
 }

解决方案 »

  1.   

    //先把 "d:\CVSMS.dll" 从Projet->Import type libaray导入进来了并uses它uses ActiveX;
    procedure TForm1.btn1Click(Sender: TObject);
    var
      hr:HRESULT;
      pcf:IClassFactory;
      pTC:CVSMSLib.ISender;
    begin
      CoInitialize(nil);
      hr:=CoCreateInstance(CVSMSLib.sender, nil, CLSCTX_INPROC_SERVER,
        CVSMSLib.sender, pTC);
      if hr=s_ok then begin
        pTC.SendbyPhoneNumber(('pushv20', 'Hii', '', '13800138300', 1, 1);
        pTC.Release;
      end;
      CoUninitialize;
    end;
      

  2.   

    不行啊!
    pcf:IClassFactory;不能通过编译
     CoInitialize(nil);不能通过编译
    CoCreateInstance(... //不能通过编译
      

  3.   

    我认真试验了,DLL用C#或VB调用没有问题.但用DELPHI调用就存在问题.后来用VB重新封装了这个DLL.才能用DELPHI调用了.原因是这个DLL中的过程用到了DELPHI中的关键字.多谢两位.