COM中服务器能不能有界面?

jhyu119 2001-08-01 05:06:58
COM中服务器能不能有界面?如果可以有的话,谁能提供一个例程。感激不尽!
另外,为什么我的服务器(EXE)里面弹出一个对话框,当作为本地服务器的时候,当访问接口的函数时,可以访问服务器并弹出对话框,但是当作为远地服务器的时候(DOCM),就不能创建远地服务器的对象了!CreateInstance失败?为什么?难道不能这样做吗?
...全文
140 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
ShipDrink 2001-08-16
  • 打赏
  • 举报
回复
敬请关注
专家门诊/扩充话题/软件市场/
“中国人只能做MIS软件吗?有兴趣合作“通用软件“吗?开发模式可以学习Linux”(ShipDrink)

内核已经写好,非常干净,原码公开

70000行,其中50000行为手写,核心代码30000行
(无注释)目前版本是1.5,经历了1.0,1.1,1.2,1.4等
版本,其中1.1和1.5版本都曾作了极大改进,变化
较大结构更加紧凑,编码更加合理,使用了部分
COM原理但又不是COM,编译完,1.4版本为1.9M,
1.5为900K,这从一个侧面反映了布局和编码的合理性。

注:请对比一下
  Acrobat (正版2000元,我用得是正版)安装完为140M,
但其核心代码为4.9M,
Delphi6 (正版)安装完为600M,但其核心代码也仅为几兆,
  且编译程序中还包括大量资源(如位图,图标,对话框等)。

),
如果你你有开发热情,可以索要帮助文档,
你可以为它升级。但你不会赚钱。
因为赚钱的不是内核部分,


wyzegg 2001-08-04
  • 打赏
  • 举报
回复
因为服务器的MessageBox在运行,你需要到服务器上去点一下确定。
今天去试啦这种情况,客户程序是VB的,结果在服务器上有一个MessageBox弹出,如果不点的话客户程序无法结束,(服务器为W2000)。但是我用system运行一个控制台程序却看不到控制台窗口.不管怎样MessageBox是回弹出的

lwg7603 2001-08-04
  • 打赏
  • 举报
回复
这个问题早就提过了!关注!
jhyu119 2001-08-03
  • 打赏
  • 举报
回复
噢!我刚才有运行了一下,我上面讲错了!不是CreateInstance就已经失败啦!是长时间没有反应,当左击对话框的时候出现这样一个对话框:服务器正在运行中
由于另一个程序正在运行,此操作无法完成,请选择“切换到“来激活正在运行的程序,并更正问题。
jhyu119 2001-08-02
  • 打赏
  • 举报
回复
消息框的弹出是在一个接口的函数中,当然要调用接口才能弹出来!我下午把服务器和客户端传给你!等着!
cityvagrant 2001-08-02
  • 打赏
  • 举报
回复
To:楼上
你的消息框在服务管理器起动时能出来吗?
代码可否给我参考一下
E-mail:hm_cityvagrant@sina.com.cn
jhyu119 2001-08-02
  • 打赏
  • 举报
回复
1 我知道一般服务器是用来做复杂运算和数据处理的,但是既然大家说服务器可以有界面,那么我想用一个例程来看看有界面的服务器和客户运行起来以后是怎么协调的!谁能给我一个例程!
2 另外,我的服务器里就用了一个MessageBox,当服务器作为本地服务器时,可以运行!但是,当远地服务器时,就不能运行!(我的服务是EXE类型的!并且如果服务器中的这MessageBox去掉,作为远地服务器是可以运行的!)
我的E_mail:jhyu119@sina.com
cityvagrant 2001-08-02
  • 打赏
  • 举报
回复
但是好像在服务管理中启动服务,服务中的界面(如一个消息框)是看不到的。我在本地(也就是服务所在地)启动服务的。
chlwww 2001-08-02
  • 打赏
  • 举报
回复
当然可以有界面,但是,作为server通常是进行复杂运算和数据库处理的,有界面有什么意思。并且,作为dcom ,server放在远程的机器上,弹出界面,客户端用户也看不见的。
作界面,你可以用BCB试一下。
wyzegg 2001-08-02
  • 打赏
  • 举报
回复
CreateInstance就已经失败啦,还谈别的事,当然程序怎么能在客户端运行呢,当然是运行后把结果通过网络传过去。不可能看到弹出的对话框的,服务器端也看不到的,不然为什么总要写文件呢
jhyu119 2001-08-02
  • 打赏
  • 举报
回复
消息框的弹出就在这个函数中:
STDMETHODIMP CMachine::GetName(BSTR *pName)
{
// CComBSTR bstr("Bob");
// *pName = bstr;
////在这个地方加上或者去掉MessageBox////
MessageBox(NULL,"GetName","Name",MB_OK);
////////////////////////
char buf[MAX_COMPUTERNAME_LENGTH + 1];
DWORD size = MAX_COMPUTERNAME_LENGTH + 1;
::GetComputerName(buf, &size);
CComBSTR bstr(buf);
*pName = bstr;
return S_OK;
}
cityvagrant(城市过客) ,我已经将程序压缩好发送给你了!
Corny 2001-08-01
  • 打赏
  • 举报
回复
创建远程COM时最好工作在MTS环境下,否则你就应该先在服务器端加载COM,才可以在远端客户创建实例了。你可以用如下方法测试:
先让客户程序在服务器端运行并创建COM实例,不要撤消,此时在客户端创建实例,就可以了。
wyzegg 2001-08-01
  • 打赏
  • 举报
回复
远程需要调度还有安全性设置,比较复杂一点的
cityvagrant 2001-08-01
  • 打赏
  • 举报
回复
关注,如何创建带界面的服务器。
highw 2001-08-01
  • 打赏
  • 举报
回复
可以有界面

604

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 控件与界面
社区管理员
  • 控件与界面社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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