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

오류 C2664은 * const를 서명 숯불에 대한 과부하 쓰기가 있습니까 const를 문자 *C2664 오류 stream.write 서명 숯불 *

에 const를 서명 숯불에 * 매개 변수 1 변환 할 수 없습니다? 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*으로 전송할 수 있으므로 여기에서 안전합니다.