如何用 wchar_t* 构造 string

怎么用 wchar_t* 构造 string ?
用vs2008编写win32控制台程序,想用main函数的第二个参数构造一个string,于是写下程序:

string str(argv[1]);

程序报错说不能将wchar_t*转换为string& ,看了一下main函数的参数才发现并不是char*类型,而是wchar_t类型,所以:
怎么用wchar_t*构造string对象呢?
或者怎么将wchar_t*转换为char*呢?转换完了我可以用string(char*)构造一个string

------解决方案--------------------
使用API函数WideCharToMutiByte
------解决方案--------------------
引用:
你可以用wstring啊
整个项目都是宽字符的话用wstring比较好吧


窄字符与宽字符都有对应的方法,如:wcout,wstrinigstream,等等
------解决方案--------------------
建立控制台项目后,在项目属性character set中改成not set,这样就是ANSI的项目。就不要转来转去了。
学习c++的时候可以这样设置,简单一些。
------解决方案--------------------
引用:
Quote: 引用:

你可以用wstring啊
整个项目都是宽字符的话用wstring比较好吧

我用wstring 构造没问题了 可是这句有问题
cout << str << endl;
str是wstring类型的,这个类型没有重载<<运算符吗
cout是窄字符的,宽字符的是wcout