本人刚开始学习分布式开发。
在建立好服务器部分的COM+组件后在建立客户程序时在加服务器程序的类型庫文件时总是加不好。比如:我在“Projec”中“Import Type Library”中加了后,我该什么做呢??
当我运行客户程序时会出现“[Fatal Error] Could not create output file 'd\program files\borland\delphi7\projects\bpl\dclusr70.bpl'
 我现在该什么做呢????
请高手帮帮忙。

解决方案 »

  1.   

    还有就是我建好了DCOM客户端/服务器后
    我在我公司的局域网中运行时也登陆不上啊
    我的服务器组件中也加了他的用户名啊
    这又是什么情况呢??
      

  2.   

    导入后。如叫:ResourceM_TLB在unit1上用
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs,ResourceM_TLB;//加上type
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
        m_CodeBasic:ICodeBasic;//声明com+中的接口。
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
      m_CodeBasic:=CoCodeBasic.CreateRemote();//CoCodeBasic为接口的com类。然后利
    用 m_CodeBasic调用自己的方法就ok了。
    end;end.
      

  3.   

    unit ClientUnit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ServerApp_TLB;type
      TForm1 = class(TForm)
        Edit1: TEdit;
        Label1: TLabel;
        Label2: TLabel;
        Edit2: TEdit;
        Label3: TLabel;
        Edit3: TEdit;
        Button1: TButton;
        Button2: TButton;
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        MyVar:IComPlus;  //定义接口变量
        { Private declarations }
      public
        procedure login(loginflag:ShortInt); //功能设置
        { Public declarations }
      end;var
      Form1: TForm1;
      flag: ShortInt;//功能设置标识implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
       MyVar := CoComPlus.CreateRemote('luzz');//创建COM+对象,luzz为机器名
       flag := 0;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
         login(flag);
         if(flag = 0)then
         begin
           flag := MyVar.Verify(Edit1.Text,Edit2.Text);//用户名与口令检查
           if(flag = 0) then
             Edit3.Text := '登陆错误,请重试!'
           else
           begin
             Edit3.Text := '登陆成功,你可以应用计算功能!';
             Edit1.Text := '请输入数值1!';
             Edit2.Text := '请输入数值2!';
             login(flag); //登陆成功,切换为计算功能界面
           end;
         end
         else
         begin
           Edit3.Text := IntToStr(MyVar.Cal(StrToInt(Edit1.Text),
              StrToInt(Edit2.Text))); //计算功能
         end;
    end;procedure TForm1.login(loginflag: ShortInt);
    begin
    //功能界面设置
       if(loginflag = 0) then
       begin
         Label1.Caption := '用户名:';
         Label2.Caption := '口  令:';
         Label3.Caption := '信  息:';
         Button1.Caption:= '登  陆:';
         Edit2.PasswordChar := '*'; //设置为口令字符显示
       end
       else
       begin
         Label1.Caption := '数值 1:';
         Label2.Caption := '数值 2:';
         Label3.Caption := '结  果:';
         Button1.Caption:= '计  算:';
         Edit2.PasswordChar := #0;//取消口令字符显示
         Edit1.SetFocus;
       end;
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      Application.Terminate;
    end;end.
      

  4.   

    对。是com+. 
    你现在在自己的机器上运行吗(只com+中间层和客户端)?有什么问题吗?
      

  5.   

    在自己的機子是可以運行,可是當我拿自己的機子當服務器(我是系統是win server 2000)
      把別人的機子當客戶運行時。就會出現“拒絕。”的
    這是什麼原因啊
    誰能給小弟解決,另加200分。
    拜托!!!!!
      

  6.   

    没有吗?
    难到一个都没有吗??
    就是说在做com dcom com+ 时自己和别的机子也会出现“拒绝访问”这是什么毛病呢??
    是不是在运行下DCOMCNFG.EXE中的设置问题呢???
    急。
      

  7.   

    如果是你自己写的服务器就不用import type library了,直接点带+号的按钮将***.Tlb加入工程即可。