1

WindowsからWinceへの変換作業を行っています。iostream を使用するには、 を選択しますSTLport5.2.1vs2008でコンパイル エラーが発生します。

am files (x86)\windows ce tools\wce500\athenapbws\mfc\include\wcealt.h(248): エラー C2084: 関数 'void *operator new(size_t,void *)' には既に本体があります

2> D:\Program Files (x86)\Windows CE Tools\wce500\AthenaPBWS\include\ARMV4I../Armv4i/new(71) : 「new」の以前の定義を参照

2>d:\program files (x86)\windows ce tools\wce500\athenapbws\mfc\include\wcealt.h(254): エラー C2084: 関数 'void operator delete(void *,void *)' には既に本体があります

2> D:\Program Files (x86)\Windows CE Tools\wce500\AthenaPBWS\include\ARMV4I../Armv4i/new(73) : 「削除」の前の定義を参照

2>Util1.cpp 2>D:\Program Files (x86)\Windows CE Tools\wce500\AthenaPBWS\include\ARMV4I../Armv4i/new(72): エラー C2084: function 'void *operator new(size_t,void *)' にはすでに本体があります

2> d:\program files (x86)\windows ce tools\wce500\athenapbws\mfc\include\wcealt.h(247) : 'new' の以前の定義を参照

2>D:\Program Files (x86)\Windows CE Tools\wce500\AthenaPBWS\include\ARMV4I../Armv4i/new(74): エラー C2084: 関数 'void operator delete(void *,void *)' は既に体

2> d:\program files (x86)\windows ce tools\wce500\athenapbws\mfc\include\wcealt.h(253) : 「削除」の前の定義を参照

どのようにエラーを解決できますか?

4

2 に答える 2

1

構成バットに文字列 --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/

于 2013-04-04T14:55:16.740 に答える
1

__PLACEMENT_NEW_INLINE を定義する必要があるようです - まだ定義されていない場合は、次のようになります。

/* MFCCE と一緒に使用する場合の回避策: MFCCE の wcealt.h はそうではありません
 * operator new を定義する前に __PLACEMENT_NEW_INLINE をチェックするため、
 * 前に演算子を定義すると、エラー C2084 が発生します。
 * "関数 'void *__cdecl operator new(unsigned int,void *)' には既に本体があります".
 */
# ifdef _STLP_USE_MFC
# __PLACEMENT_NEW_INLINE を定義
# endif
于 2012-06-20T15:27:19.873 に答える