2012-01-05 5 views
0
ostream &stream; 
stream.write(SomeUnsignedCharStar, intSize); 

エラーがC2664は、*のconst unsigned char型のため、過負荷の書き込みがありますのconstのchar *C2664エラーstream.writeはunsigned char *

へのconst unsigned char型の*からパラメータ1を変換することはできませんか? SomeUnsignedCharStarは、継承したレガシーコードのいたるところにあるので、私はSomeUnsignedCharStarを変更したくありません。これはVC6でコンパイルされました。私はゆっくりとコードをVS2003に、その後VS2010を抜きにアップグレードしています。

最も簡単できれいな修正は何ですか?

+0

私はまずVC++ 2003にアップグレードしてもらうことはできません。おそらくVisual Studio .NET 2003はおそらく最もバグの多いバージョンでした。 –

+0

私はVS2010にまっすぐ行って、すべての地獄は緩んだ。 VC6からVS2010への変換には、あまりにも多くのことを考慮する必要があります。私はVS2008への変換を最初に試してみると、すべてうまくいく。 VS2008で構築されたすべてのプロジェクト。 VS2008からVS2010への変換は、より小さなステップである方がずっと簡単です。しかしそれは問題なしではありません。 – dysonfree

+0

これは妥当だと思います。私はVC++ 2003を使いこなすことを勧めています。 –

答えて

0

これは問題なくキャストできます。厳密なエイリアシングでは、同じ型の符号なしバージョンと符号付きバージョンの間でポインタをキャストすることができます。また、任意の型からconst char*にキャストするので、ここで安全です。

関連する問題