// dd.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> #include <atlbase.h> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { CComBSTR bVal("1.0"); if(bVal != L"1.0") cout<<"no"<<endl; else cout<<"yes"<<endl; return 0; }
上面是vc++.net2005上的一个win32控制台程序,在程序运行时,进入了else。
但是上面的代码在vc6中,运行的时候却是进入了if。
这是为什么呢?
因为在vc6中对于CComBSTR没有!=的重载,但是在vc2005中却有它的重载。所以猜测在vc6中比较的可能是地址!