我的问题为什么没有人回答,30分啊.

chinaha 2001-10-23 08:02:55
请教哪位大侠一个问题.
我用书上的例子输入一个关于COM的程序,服务器运行正常,生成了一个DLL,并在BCB5环境下注册,但是,
客户程序出了问题,按书上所说,开始一个新工程,然后,引入类型库project|import type library,在import type libary
对话框内,选中要用的类型库project1 library,将下部的generate component wrapper前的选择框勾去掉,按
create unit按钮,引入类型库.
客户程序如下:
//---------------------------------------------------------------------------

#include <vcl.h>
//#include <utilcls.h>
#pragma hdrstop

#include "Unit1.h"
//#include "sysutils.hpp"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
COMObj=CoCOMObject::Create();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ButtonGetClick(TObject *Sender)
{
Edit1->Text=AnsiString(COMObj->get_Value());

}
//---------------------------------------------------------------------------
void __fastcall TForm1::ButtonSetClick(TObject *Sender)
{

COMObj->set_Value(i);

}
//---------------------------------------------------------------------------
void __fastcall TForm1::ButtonIncClick(TObject *Sender)
{
COMObj->Inc();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ButtonShowClick(TObject *Sender)
{
COMObj->ShowMessage();
}
//----------------------------------------------------

头文件如下:
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>

#include <COMObj_TLB.h>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TEdit *Edit1;
TButton *ButtonGet;
TButton *ButtonSet;
TButton *ButtonInc;
TButton *ButtonShow;
void __fastcall ButtonGetClick(TObject *Sender);
void __fastcall ButtonSetClick(TObject *Sender);
void __fastcall ButtonIncClick(TObject *Sender);
void __fastcall ButtonShowClick(TObject *Sender);
private: // User declarations
TCOMICOMObject COMObj;
//ICOMObject* ICOMObj;
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif


但是运行时却总是出现如下提示:
'create(intfobj):类没有注册@c:\program files\borland\cbuilder5\include\vcl\utilcls.h/3136
press [y]es to terminate [n]o to continue and [c]ancel to debug

这是怎么回事?
哪位高手大侠告诉我.
可否给我回信. chinaha@371.net
...全文
70 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
勉励前行 2001-10-24
  • 打赏
  • 举报
回复
cool868@163.net
最近有點忙,可能耽誤你的時間....
hantao 2001-10-23
  • 打赏
  • 举报
回复
up
chinaha 2001-10-23
  • 打赏
  • 举报
回复
不可以的,我要的是一个IN-process服务,怎可用CreateRemote()?你的信箱是多少,可否给我,我把整个源程发给你,你给我看一看,或运行一下?可否?多谢.
勉励前行 2001-10-23
  • 打赏
  • 举报
回复
訪問遠程對象:
COMObj=CoCOMObject::CreateRemote(L"MyServerName");
你可以試試看。
chinaha 2001-10-23
  • 打赏
  • 举报
回复
你说的不错,可我已经注册了,要不怎么能用Import Type Library来导入.是不是Create()方法有问题?
勉励前行 2001-10-23
  • 打赏
  • 举报
回复
在客戶端一定要運行服務器程序一次,進行注冊,否則無法使用該服務器。
勉励前行 2001-10-23
  • 打赏
  • 举报
回复
這是一個DCOM程序,在客戶機上運行一下服務端程序可注冊該類。

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧