본문 바로가기
Programming/Tips(C++,C#)

VS2015에서 _filelength(FILE*->_file)이 빌드 안됨

by 곰네Zip 2016. 6. 7.

 VS2015로 기록하였지만, 정확하게는 C++에서 FILE구조체(_iobuf)의 멤버였던 _file이 제거된것 같다.

FILE구조체의 멤버는 _Placeholder 이거 하나만 남아있는데. 정확하게 무엇을 하는지는 확실하지 않다.

FILE구조체의 멤버들이 다 제거된것 같은데, 이에 맞추어.. 각자 필요한 것들을 만들어야 할듯..

나야 왜 그랬는지는 모르지만.. 파일 길이를 재려고 아래와 같이 구문을 작성했었다.

 파일크기= _filelength(FILE*개체->_file);


더이상 위 구문은 컴파일이 안되므로, 아래와 같이 변경

 #include <fstream>


std::ifstream files(파일명, std::ifstream::ate | std::ifstream::binary);

파일크기 = files.tellg();

위와 같이 바꾸었다.

결과는.. 되네


6.0, 7.0에서 빌드한 소스들을 2015로 포팅하려니.. 어렵구만.. 그래도 꽤나 표준함수를 많이 쓰려고 한 덕인지(?) 포팅이 오래걸리지는 않는다. 휴


반응형

댓글