2016-04-28 14 views
1

コードはWin32プラットフォームで正しくコンパイルできますが、WinCeプラットフォームではデバッグモードで多くのエラーが発生します。エラーは、ヘッダファイルcstdio、cstring、およびcwcharに関連しています。エラーC2039: '_gets_instead_use_StringCbGetsA_or_StringCchGetsAは': '_gets_instead_use_StringCbGetsA_or_StringCchGetsA':シンボル '`グローバル名前空間'」Windows CE 7プラットフォームでエラーc2039およびエラーc2873

エラーC2873のメンバーではありません

マイクロソフトのVisual Studio 9.0 \ VCの\のCE \は\ cstdioを(82)を含み'sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA':using宣言

エラーC2873に使用できませんエラーC2873: 'swprintf_instead_use_StringCbPrintfW_or_StringCchPrintfW':シンボル(66)\ cwcharを含む

CE7が\ using宣言に使用することができないシンボルができません利用される using宣言に

\として\ ARMV4I \ STDLIB.H(146):エラーC2065:「_malloca」:宣言されていない識別子

答えて

1

私がしたのは、私のインクルードファイルの順序を変更することでした。私は他のヘッダファイルの後ろに "winsock2.h"ヘッダファイルを置いています。そして今、私はそれらのエラーを取得しません。

Before I had: 
#include <winsock2.h>               
#include <vector>          
#include <map>  
#include <string>      

After: 
#include <vector> 
#include <map> 
#include <string> 
#include <winsock2.h> 
1

サフィックスは、通常、8ビットの両方を持つ関数のASCIIバージョンに接続され16bitのUnicodeバージョン(後者は通常、接尾辞としてWを持ちます)。 Windows CEはUnicodeのみをネイティブにサポートしているため、ASCIIを使用するコードを作成しようとすると問題が発生する可能性があります。最も一般的に使用されている関数とオブジェクトについては、標準のC/C++ライブラリにASCII関数の部分的な実装がありますが、参照しているものはそこにはないかもしれません。 UNICODEと_UNICODEを定義して、そのコードの "W"バージョンを構築しようとすることができます。その部分は、1文字= 1バイトという前提はありません。

+0

ありがとう@Valter Minute。しかし、私はwin32のためにavailabであるが、winceではなくCランタイムライブラリのそれらの機能を使用しているようです。デバッグモードで上記のエラーが発生します。リリースモードに変更すると、cstdioヘッダーファイルに次のエラーが表示されます。 Visual Studio 9.0 \ VC \ ce \ include \ cstdio(64):エラーC2143:構文エラー: '{'の前に ':'が存在しません。 #if _GLOBAL_USING _STD_BEGIN using :: _ Filet; – Habib

+0

UNICODEセットでも失敗しますか? –

+0

はい、プロジェクトのプリプロセッサ定義にUNICODEを設定しました。しかし、それは役に立たなかった。 – Habib

関連する問題