环境:VC.Net2003、MFC对话框项目。
我创建了自己的 namespace,在其内定义了自己的 CString 类(与MFC的CString同名):
namespace MyLibrary
{
class CString : public ::CString //继承、扩展MFC的CString
{
};
}现在需要的功能是,在使用CString时,直接写CString就是默认使用MyLibrary::CString,也就是说,如这样写:
CString str; //需要MyLibrary::CString被优先匹配但是,不能影响MFC的其他类的使用,如CDialog等没有被重名的类的使用就应该像本来一样。如何实现?谢谢!
解决方案 »
- unhandled exception in JYF.exe: OXC0000005 Access violation
- 在TABCTRL里建了个属性页,鼠标点不动里面的控件
- 现在的163,新浪网站等不支持jmail组件发送邮件了么
- 怎样在dialog上显示个动画?
- 问一个用opengl线程的问题
- 我在本机上装了sourcesafe,vc光盘自己带的那个,可是sourcesafe_admin运行有错!
- 关于插件的问题
- 类模板的member function是不是一定要跟类定义处于同一文件中?
- 一个MFC Extension DLL的问题
- shellexecute能不能显示打印设置对话框?
- 能介绍几篇关于C++在网络编程方面优点的文章吗?
- 使用完成端口怎么样判断一个已经连接上的socket的关闭
不过感觉尽量不要这样,很容易出错的,
-----------------------------------------
偶从来没用过 :)
//到了CString的地方编译器报告 不明确的符号我想namespace的本意就是用来解决同名问题的,不过如果发生重名了,每一次都要写一个MyLibrary::这样还不如不解决。
1、当你真的明确写一个MyLibrary::CString时,宏却把其替换为:MyLibrary::MyLibrary::CString了。
2、因为宏的全局效应,在其他namespace中的同名CString全部受影响。