visual studio 2005에서 C2383 에러..
프로그래밍 :
2007/07/19 22:00
| 대략 예전에 vs6.0에서 만든 프로그램을 다시 볼일이 있어서 vs2005에서 프로젝트만 변환해서 컴파일을 해봤다. 그때 별로 특별하게 컴파일러에 의존적으로 작성한 코드가 없었다고 생각했기 때문에 컴파일이 잘 될거라고 생각했다. 그런데!!!! 뜨는 에러.. 바로 C2383... d:\projects\dalory\dalme\winclient\dalmechatdlg.cpp(1001) : error C2383: 'Proc' : 이 기호에는 기본 인수를 사용할 수 없습니다. 뭔소리여.. 라고 생각하며 해당 코드를 보니 대략 이렇게 되어있었다. 마지막 인자의 기본값이 ""인 함수포인터 Proc를 선언하는 구문이다. 당연히 해당 함수의 선언이 저렇게 되어있기 때문에 저런 것도 문제가 없을거라고 생각을 했다. 그러나 vs2005에서는 에러를 퉤!! 뱉으며 거부를 했다.. 그래서 msdn에서 찾아보니 아래와 같이 나온다.
이제는 지원 안한단다 ㄱ-.. 왜!!! 덕분에 함수포인터에 저장한 함수에 기본값을 사용할수 없게 되었다 ㄱ- 뭐 기본값을 사용 못한다고 해서 함수 호출이 불가능한건 아니지만.. 대신 기본값이 있는 함수는 직접 헤더를 열어서 확인 후 기본값을 지정해줘야하고.. 만약에 나중에 함수의 기본값 부분이 바뀐다고 하면 그때마다 호출하는 부분에서 다 바꿔줘야한다.. 대략 난감하기 서울역에 그지 없다.. 뭐 함수 포인터를 직접 함수 이름을 대입하여 사용하는 경우라면 컴파일시 에러가 나오겠지만.. 대략 아래와 같은 코드는 에러도 안난다.. 다만 기다리는건 런타임 에라 .... 이게 원래 표준이 아니였나 ㅠ 님들아.. 이렇게 좋은걸 왜 표준에 안넣어주나연.ㅠ |





댓글을 달아 주세요
왜냐면 걘 포인터니깐.
그래도.. 엉엉. ㅠ