Service Application 的问题II

ctestcode 2002-09-07 11:00:21
怎样使 生成的程序 在win98以 application运行
而在win2000下 以 Service Application 运行?
是否是这样?不过为什么我这样在 win2000下启动不了服务?


if(isnt){
FormXYZ=NULL;
Svcmgr::Application->Initialize();
Svcmgr::Application->CreateForm(__classid(TFormXYZ), &FormXYZ);
Svcmgr::Application->CreateForm(__classid(TService1), &Service1);
Svcmgr::Application->Run();
}else
{ FormXYZ=NULL;
Forms::Application->Initialize();
Forms::Application->CreateForm(__classid(TFormXYZ), &FormXYZ);
Forms::Application->Run();
}

...全文
61 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
aawolf 2002-09-08
  • 打赏
  • 举报
回复
我估计如果不用BCB提供的向导来生成NT服务的话,应该是有办法的,在2000下它的表现形式是个服务,而在98下则是个普通EXE。只要NT服务和普通EXE的WinMain入口一样就可以,不过应该是好麻烦,而且现在编写NT服务的资料也比较少。
kingcaiyao 2002-09-08
  • 打赏
  • 举报
回复
但并不是说在NT服务程序中不可以实现你的功能,对于你要在NT服务程序中显窗体,这就需要将你的服务程序设置为交互式,并建议你开辟一线程,而不用NT服务程序内置的线程.然后在这个新开辟的线程的Execute方法中加你程序要实现的功能,然后在NT服务程序启动时启动你的线程,在NT服务程序暂停时暂停你的线程,在NT服务程序终止时也终止你的线程.
kingcaiyao 2002-09-08
  • 打赏
  • 举报
回复
Windows98几乎不支持NT服务程序,因此应你的程序移植到Win2000下
你上面的代码想用在NT服务程序中是不可以的,因为Application是普通的C++ Builder应用程序,对于NT服务程序来讲,它是TServiceApplication,NT服务程序在C++ Builder中依靠TServiceApplication而存在.
ctestcode 2002-09-08
  • 打赏
  • 举报
回复
我试过了,其实是其他问题。上面的代码完全可以。
谢谢,回答有分

13,825

社区成员

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

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