using namespace std;
#include <iostream>
#include<typeinfo>
#include<windows.h>
#include<string>
#include<atlstr.h>/*非MFC程序要使用CString必须引用此库*/

/*LPCTSTR=const Wchar*=LPCWSTR */

int main()
{string directory;
cin>>directory;/*输入cazzo*/

CString b;
  b= directory.c_str();
cout<<b<<endl;/*显示一个内存地址*/
 LPCTSTR c=b;

/*测试目标,自己封装一个从string到LPCTSTR的转换函数*/
wcout<<c<<endl;/*显示cazzo*/
wcout<<b<<endl;/*显示内存地址,跟上面那个一样,为什么呢?*/
wprintf(c);/*显示cazzo*/

getchar();/*暂停断点*/

推荐图书

  • C++ Primer中文版(第4版)
  • More Effective C++:35个改善编程与设计的有效方法(中文版)
  • 设计模式:可复用面向对象软件的基础


1个回答

你的b只是一个const char*,不是一个类,不可能重新定义这个类的<<(也就是重载<<操作符),再者它本来也就是个指针,所以只能显示地址了。