![]() |
1
4
我不知道它们在msdn的文章中是什么意思。只要您不使用任何GUI功能,您就可以了——但在开发服务时,这是一个一般的设计问题。 也就是说,ATL有专门为建筑服务IIRC设计的功能,所以您最好使用它。 回答你的问题(据我所知): 1)您指定的那些没有问题。 2)我想它们是指与UI组件的同步问题。只要不使用任何cwnd派生类,就可以了。 3)不理解问题。 4)请参阅之前的内容,另外ATL更轻,因此您必须减少分发,并提供内置功能,以减少开发服务的痛苦。请参见例如catlserviceModulet。您仍然可以主要使用自己的类,因为CString现在在MFC和ATL之间共享,并且ATL有用于套接字编程和内存文件映射本身的类。它没有与carchive等效的功能,我不确定您在cobject中使用的功能,所以我不能说atl中是否有等效的功能。所以最后,我会对这个问题说“是”。 |
![]() |
2
3
(我知道这个答案有点晚了,这个问题已经被回答了,但是服务中的MFC对我来说是一个痛点…) cSockets,据我所知, 需要一个窗口 . 它使背景中的一个不可见。当我尝试在Windows服务中包含一些预先存在的MFC代码时,我发现了这一点。也许只有接受了插座连接才需要这样做-我想不起来了? 但它不起作用! (我到底是如何浪费这么多时间来实现这一限制的,这是一个很长的故事) CObject?如果您需要运行时类ID的东西,请使用rtti(动态\u cast等…) CString,我喜欢CString,我知道它现在已经和ATL共享了,不确定您是在不包括MFC还是ATL的情况下拉它…您可以使用std::string。另外,我记得有人创建了一个派生的std::string,它提供了与cstring相同的方法。 (编辑:找到 code -伙计!!这是过去的爆炸…) 卡奇夫:你真的需要这些吗? 不管怎样,正如罗尔所说,ATL可能更有用。我不会在服务器端应用程序中使用MFC(永远!)ATL?也许吧。如果我需要通信,就要挑衅。没有COM,只有catlserviceModulet等…也许吧。。。。 |
![]() |
3
0
还有一件关于服务中的MFC的坏事情,我在尝试将常规的MFC-ATL应用程序转换为服务时遇到过:如果没有窗口过程,使用afxConnectionAdvise()实际上是无用的。我服务的线程只是普通的非消息泵线程。我相信这就是为什么我从未从我开发的另一个COM服务器上触发事件的原因。另一个COM服务器挂起fire_xxxevent(),导致整个系统混乱。 |
![]() |
cyber101 · vc++未声明的标识符,尽管其已声明 7 年前 |
![]() |
areum · 如何在列表控件中创建右键单击菜单? 7 年前 |
![]() |
Rafal · 如何在MFC中的CWnd中显示CFormView? 7 年前 |
![]() |
Anton Savelyev · 在发布版本中删除类指针会导致内存问题 7 年前 |
![]() |
xtkwfn · 如何查找目录[已关闭]下的所有文件夹 7 年前 |
![]() |
Andrew Truckle · 在WPARAM中组合5个值 7 年前 |
![]() |
user3070144 · 通过全局接口表封送ActiveX 7 年前 |