我用VC7编译了STLPort 4.6,在一个项目中调用时生成如下错误:
error LNK2019: 无法解析的外部符号 "void __cdecl std::_Xlen(void)" (?_Xlen@std@@YAXXZ) ,该符号在函数 "public: int __thiscall Param::GetString(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *)" (?GetString@Param@@QAEHPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) 中被引用
error LNK2019: 无法解析的外部符号 "void __cdecl std::_Xlen(void)" (?_Xlen@std@@YAXXZ) ,该符号在函数 "public: int __thiscall Param::GetString(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *)" (?GetString@Param@@QAEHPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) 中被引用
--------------------------------------------------------------------------------
The information in this article applies to:Microsoft eMbedded Visual C++ version 3.0--------------------------------------------------------------------------------
SYMPTOMS
When building an application for Pocket PC emulation that uses the Windows CE operating system functions, errors similar to the following may be encountered: <filename>.obj : error LNK2019: unresolved external symbol _CeDeleteDatabase referenced in function <function> CAUSE
These operating system functions use the _stdcall calling convention, but the compiler is declaring them as _cdecl. This problem occurs with the Windows CE Platform SDK for Pocket PC because the functions are incorrectly declared in the Windbase.h file without a linkage type. RESOLUTION
Use one of the following workarounds: Add the /Gz compiler switch to the configuration's project settings when building for Pocket PC emulation.-or-
If the first workaround prevents other functions/libraries from linking in your project, then modify the Windows CE database function declarations in the Windbase.h file. For example, for the error in the "Symptoms" section, change the following declaration BOOL CeDeleteDatabase (CEOID oid);
to read:BOOL WINAPI CeDeleteDatabase (CEOID oid); STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article.MORE INFORMATION
This bug affects the following function classes: Windows CE Database
GDI Additional query words: Keywords : kbDSupport kbGrpDSETK
Issue type : kbbug
Technology : kbVCsearch kbAudDeveloper kbVCeMb