使用 STLport void 的 Wince 5.0 *运算符 new(size_t,void *)' 已经有一个正文



我正在做从窗口到畏缩的转换工作。对于使用iostream,我选择STLport5.2.1。我在 vs2008 上收到编译错误:

AM 文件 (x86)\Windows ce 工具\wce500\athenapbws\mfc\include\wcealt.h(248):错误 C2084:函数"void *运算符 new(size_t,void *)"已具有正文

2> D:\Program Files (x86)\Windows CE Tools\wce500\AthenaPBWS\include\ARMV4I../Armv4i/new(71) : 参见前面对"new"的定义

2>D:\程序文件 (x86)\Windows CE 工具\WCE500\athenapbws\MFC\include\WCEALT.h(254):错误 C2084:函数"void 运算符删除(void *,void *)"已具有主体

2> D:\Program Files (x86)\Windows CE Tools\wce500\AthenaPBWS\include\ARMV4I../Armv4i/new(73) : 参见前面的"删除"定义

2>实用1.cpp 2>D:\Program Files (x86)\Windows CE Tools\wce500\AthenaPBWS\include\ARMV4I../Armv4i/new(72):错误 C2084:函数"void *运算符 new(size_t,void *)"已经有一个主体

2> d:\Program Files (x86)\Windows CE Tools\WCE500\athenapbws\MFC\include\WCEALT.h(247) : 请参阅前面的"新"定义

2>D:\Program Files (x86)\Windows CE Tools\wce500\AthenaPBWS\include\ARMV4I../Armv4i/new(74):错误 C2084:函数"void 运算符删除(void *,void *)"已经有一个主体

2> d:\Program Files (x86)\Windows CE tools\wce500\athenapbws\mfc\include\wcealt.h(253) : 请参阅前面的"删除"定义

如何解决错误?

看起来你应该定义__PLACEMENT_NEW_INLINE - 如果尚未定义,下面是它的作用:

/* 使用 MFCCE 和一起使用时的解决方法:MFCCE 的 wcealt.h 不会 * 在定义运算符 new 之前检查__PLACEMENT_NEW_INLINE,所以当 * 定义运算符之前,会出现错误 C2084: * "函数'void *__cdecl运算符new(unsigned int,void *)'已经有一个主体"。 */# ifdef _STLP_USE_MFC# 定义__PLACEMENT_NEW_INLINE# 尾音
你必须

在配置 BAT 中添加字符串 --rtl-static。这对我畏缩起作用。dll 的输出名称将是 stlport-x.5.2.dll

编辑

我发现了问题。我能够使用/MD(DLL 多线程)构建 stlport 查看http://social.msdn.microsoft.com/Forums/en-US/vssmartdevicesnative/thread/fbae6f2a-4fc0-4610-a4b7-3d3d6bc6ac7e/

最新更新