1:
我看到许多书上写到如果组件支持对象池那麽组件中就必须没有私有的状态变量
这是为甚麽?
是不是指我在组件中不能定义一个成员变量???
能不能举一个小例子说明一下
。
2:
mts 的组件(out-of-process)如何调试!!!!!
我看到许多书上写到如果组件支持对象池那麽组件中就必须没有私有的状态变量
这是为甚麽?
是不是指我在组件中不能定义一个成员变量???
能不能举一个小例子说明一下
。
2:
mts 的组件(out-of-process)如何调试!!!!!
解决方案 »
- CTreeCtrl选中节点,但显示的却是上一次选中的节点
- 哪位大哥有Visual C++ MFC扩展编程实例的代码啊 希望有的可以发给我 谢谢啦
- vc 有没能方法向局域网中的所有机器广播,让它们下载我服务器上即时更新的文件。
- 今天竟然见到两个"钻石"级别的,csdn各个级别大概多少分?
- 关于搜索文件夹的问题!!!
- 请问有谁知道microsoft的Agent小精灵该如何编程使用?
- 如何实现ping操作?非常着急,请大家指教。
- VC版的兄弟们,请给我推荐一个既快又稳定的pop3信箱
- 散分,急急急急急急
- 如何在程序中判断一个数据库access正在被使用?
- 在VC中自己开发一个报表,还望您多提点建议,(来的就有分!)
- 请问有人用过vc7吗?感觉怎么样?比vc6好吗?大家来谈谈感受~
COM+的对象好像不太好调试,我是通过使用宏,加编译开关,调试期去除环境变量的一切调用,换言之把它当作一个老式的组件来调试。发布期把编译开关去掉就可以了。
两者不同的是,支持对象池的组件在每次调用完成,环境变量提交后,不会注销组件,而是把它放进对象池。而不支持的对象池的组件每个调用后都注销实际对象(注意,在COM+中,客户面对的是环境封装后的逻辑对象,而我前面两次这里说的是实际对象)。
举个例子,你写一个老式组件CObject(不支持对象池),给它加一个方法
HRESULT _stdcall DoSome()
{
m_pObject->SetComplete();
}
然后在它的FinalConstruct中添加
MessageBox(...)语句。
跟着你用VB Script调用
Set obj = CreateObject("Test.Object")
obj.DoSome
obj.DoSome
你会发现,每次调用,对话框就会弹出来,尽管这里逻辑对象没有注销,但是实际对象两次构造,两次释放了。
2:在Debug选项中,可执行文件填c:\winnt\system32\dllhost.exe
命令行参数填/ProcessID:{COM+中的应用程序GUID}