有一个中间件MTS及前端EXE,第一次运行成功之后(用EXE运行,非IDE环境),我又不知搞错了那里,我没有修改任何代码的情况下,改了一个TDCOM的SERVERNAME及COMPUTERNAME(好奇,试试着玩的,运行结果当然是不行喽),后来就恢复原来的设置.它就出现下面的错误提示:
尚未调用Coinitialize.两台机都重启后也不行.

解决方案 »

  1.   

    两台机都复制了midas.dll没有。
      

  2.   

    在项目文件中Uses Active 单元,在Begin部分加入Coinitialize(0);
      

  3.   

    你用的是什么版本的 delphi, 5.0 之前使用MTS要改动些原码才行, 可能打 update 2# 也行
      

  4.   

    该如何改啊?
    我用的是Delphi6.0,我什么代码也没有加,完全是自动生成的:unit uDataModul;{$WARN SYMBOL_PLATFORM OFF}interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      ComServ, ComObj, VCLCom, StdVcl, bdemts, DataBkr, DBClient,
      MtsRdm, Mtx, pCom_TLB, Provider, DB, ADODB;type
      TMyMTS = class(TMtsDataModule, IMyMTS)
        ctJUN: TADOConnection;
        rsCODE: TADODataSet;
        dspCode: TDataSetProvider;
      private
        { Private declarations }
      protected
        class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override;
      public
        { Public declarations }
      end;var
      MyMTS: TMyMTS;implementation{$R *.DFM}                   class procedure TMyMTS.UpdateRegistry(Register: Boolean; const ClassID, ProgID: string);
    begin
      if Register then
      begin
        inherited UpdateRegistry(Register, ClassID, ProgID);
        EnableSocketTransport(ClassID);
        EnableWebTransport(ClassID);
      end else
      begin
        DisableSocketTransport(ClassID);
        DisableWebTransport(ClassID);
        inherited UpdateRegistry(Register, ClassID, ProgID);
      end;
    end;initialization
      TComponentFactory.Create(ComServer, TMyMTS,
        Class_MyMTS, ciMultiInstance, tmApartment);
    end.
      

  5.   

    李维那本 ado/mts 有书上有说