Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C+中是否支持wchar+;WDK STL?我得到未解析的外部符号';s:(_C++_Winapi_Windows 7_Stl_Wdk - Fatal编程技术网

C++ C+中是否支持wchar+;WDK STL?我得到未解析的外部符号';s:(

C++ C+中是否支持wchar+;WDK STL?我得到未解析的外部符号';s:(,c++,winapi,windows-7,stl,wdk,C++,Winapi,Windows 7,Stl,Wdk,我正在编译一个简单的C++文件 TEMP.CPP >: #include <string> int main() { std::wstring s; } 在WDK 7.1 Windows XP免费构建环境中 我得到的链接错误如下(LNK2019): 未解析的外部符号“\uu declspec(dllimport)public:\uu thiscall std::basic_string::~basic_string(void)” (\uu imp\uu1?$basic_strin

我正在编译一个简单的C++文件<代码> TEMP.CPP >:

#include <string>
int main() { std::wstring s; }
在WDK 7.1 Windows XP免费构建环境中

我得到的链接错误如下(LNK2019):

未解析的外部符号“\uu declspec(dllimport)public:\uu thiscall
std::basic_string::~basic_string(void)”
(\uu imp\uu1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator
@_W@2@@性病@@QAE@XZ)在函数_main中引用
如果我使用
string
而不是
wstring
,它会工作


问题的原因是什么?我如何在源文件中使用基于
wchar\u t
的类型?

可能的解决方法是设置/Zc:wchar\u t-将wchar\u t作为一个固有类型关闭。STL6对/Zc:wchar\u t没有很好的支持,因为至少在VC7.1之前,它是默认类型

Meta:请不要使用STL的STL60版本。1998年的这个版本缺少大量的bug修复、性能改进和标准一致性工作,这些都可以在现代STL中找到。如果您使用的是VC编译器工具链,则免费的VC++express包含STL


Martyn

可能的解决方案是设置/Zc:wchar__t-将wchar_t关闭为一个固有类型。STL6对/Zc:wchar___t没有很好的支持,因为它至少是VC7.1版本(可能更早)的默认值

Meta:请不要使用STL的STL60版本。1998年的这个版本缺少大量的bug修复、性能改进和标准一致性工作,这些都可以在现代STL中找到。如果您使用的是VC编译器工具链,则免费的VC++express包含STL


Martyn

VC6不支持
wchar\u t
类型,它有一个
typedef
用于
unsigned short
。链接器只能在“stl60”中找到
std::basic_string
lib.

VC6不支持
wchar\u t
类型,它为
unsigned short
提供了
typedef
。链接器只能在“stl60”中找到
std::basic_string
lib.

WDK指的是Windows SDK吗?@jalf:不,是Windows驱动程序工具包。@Andreas:什么都没做,尽管我怀疑可能是类似的…:(WDK指的是Windows SDK吗?@jalf:不,是Windows驱动程序工具包。@Andreas:什么都没做,尽管我怀疑可能是类似的…:(你太棒了!!!这解决了它,非常感谢(帮我省了很多痛苦)!:)很好,现在把你的编译器升级到新千年的版本。;)你太棒了!!!这解决了它,非常感谢(帮我省了很多痛苦)!:)很好,现在把你的编译器升级到新千年的版本。;)
cl.exe /MD /Iinc\api\crt\stl60 /Iinc\crt /Iinc\api C:\Temp.cpp
       /LibPath:lib\wxp\i386 /LibPath:lib\crt\i386
       /link /LibPath:lib\wxp\i386 /LibPath:lib\crt\i386
unresolved external symbol "__declspec(dllimport) public: __thiscall
    std::basic_string<wchar_t,struct std::char_traits<wchar_t>,
    class std::allocator<wchar_t> >::~basic_string<wchar_t,
    struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >(void)"
    (__imp_??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator
     @_W@2@@std@@QAE@XZ) referenced in function _main