wstring変換する為には、MultiByteToWideChar()関数を使用します。第1引数にCP_ACPを渡す事でSHIFT-JIS文字列を扱う事ができます。
#include <stdio.h>
#include <tchar.h>
#include <locale.h>
#include <iostream>
#include <string>
#include <windows.h>
/*
	stringをwstringへ変換する
*/
std::wstring StringToWString
(
	std::string oString
)
{
	// SJIS → wstring
	int iBufferSize = MultiByteToWideChar( CP_ACP, 0, oString.c_str()
		, -1, (wchar_t*)NULL, 0 );
	// バッファの取得
	wchar_t* cpUCS2 = new wchar_t[ iBufferSize ];
	// SJIS → wstring
	MultiByteToWideChar( CP_ACP, 0, oString.c_str(), -1, cpUCS2
		, iBufferSize );
	// stringの生成
	std::wstring oRet( cpUCS2, cpUCS2 + iBufferSize - 1 );
	// バッファの破棄
	delete [] cpUCS2;
	// 変換結果を返す
	return( oRet );
}
int _tmain
(
	  int argc
	, _TCHAR* argv[]
)
{
	// 標準出力にユニコード出力する
	setlocale( LC_ALL, "Japanese" );
	// stringをwstringに変換する
	std::wstring oWString = StringToWString( "あいうえお¥n" );
	// 標準出力へ出力する
	std::wcout << oWString << std::endl;
	// 正常終了
	return( 0 );
}
あいうえお