나는개발자다2012/02/28 15:01
참고 사이트 : 
http://social.msdn.microsoft.com/Forums/en-AU/vcgeneral/thread/325f9bc9-297d-4c59-8d90-486f0933a2ec 

http://msdn.microsoft.com/en-us/library/at5879hx.aspx 

MSDN에서도 명시하고 있지만, 1개의 라이블러리 파일이 가질 수 있는
최대 object의 개수는 65535개로 제한하고 있음을 확인했다.

여러 정적 라이블러리를 통합하는 과정에서 에러가 발생해서..
아마 따로 따로 만들어야 할듯 하다..
 
저작자 표시 비영리 동일 조건 변경 허락
Posted by jjangmin
나는개발자다2012/02/27 18:01
기존의 Visual Studio 2005로 된 솔루션을
Visual Studio 2010(SP1)버전의 솔루션으로 변환시킬 일이 생겼다.

일단 기존 2005에 있던 프로젝트 플랫폼 중에
2010에서 더 이상 지원 되지 않는 플랫폼인 pocket pc나  
windows mobile 계열의 플랫폼을 제거했다.
이 부분을 제거하지 않으면 converting error가 발생하게 된다.
(.vcproj 파일을 text editor로 편집하여 수정함) 

그리고 빌드를 돌렸을 때, 아래와 같은 LNK2001 링크 에러가  발생했다.

1>nafxcw.lib(afxglobals.obj) : error LNK2001: unresolved external symbol _IID_IWICImagingFactory

1>nafxcw.lib(afxtaskspane.obj) : error LNK2001: unresolved external symbol __imp__ImageList_GetIconSize@12

1>nafxcw.lib(afxvisualmanager.obj) : error LNK2001: unresolved external symbol __imp__ImageList_GetIconSize@12

1>nafxcw.lib(afxvisualmanagerofficexp.obj) : error LNK2001: unresolved external symbol __imp__ImageList_GetIconSize@12

1>nafxcw.lib(afxstatusbar.obj) : error LNK2001: unresolved external symbol __imp__ImageList_GetIconSize@12

1>nafxcw.lib(afxheaderctrl.obj) : error LNK2001: unresolved external symbol __imp__ImageList_GetIconSize@12


대략 난감..
구글링 해 보니, Static Library를 사용하는 것 때문에
현재 프로젝트 속성에서 nafxcw.lib을 따로 추가 종속성으로 넣어 버린 상태였다.

2시간 정도 구글링 끝에 해결 방법을 발견했다.

http://social.msdn.microsoft.com/Forums/en-GB/vclanguage/thread/c9827214-c2d9-4261-a384-5b183917bf97 

여기에서 stdafx.h 파일에서 atlbase.h를 include시키고
추가 종속성으로 걸린 nafxcw.lib을 빼라고 한다.

그래서 그렇게 했더니 된다 -_-;;

이런 문제가 VS2010 SP1부터 나타난 것으로 밝혀졌고...
왜 그런지 자세한 이유는 잘 알 수 없었다..

여튼.. 해결되지 않을 것 같은 문제가 해결 되어 기쁘고 감사하다 ^^ 
저작자 표시 비영리 동일 조건 변경 허락
Posted by jjangmin
나는개발자다2012/02/03 11:50
디버깅을 하는데 갑자기 뜨는 에러..
There is no source code available for the current location

프로그램 동작에는 큰 이상이 없지만
디버깅을 하면서 해당 소스 코드 안에 들어갈 수 없는 문제점이 발생하였다.

구글링을 하면서 찾은 것은..
solution property에서 해당 소스 파일에 들어갈 수 없도록 설정되어져 있었다.

solution->property에서
common properties-> debug source files 에 가 보면
do not look for these source files 에 해당 소스 파일이 추가되어져 있을 것이다.
추가된 파일을 지운다면 소스 파일에 접근할 수 있을 것이다.

하지만 또 문제가 발생했다.
디버깅 중에 소스 파일에 접근하려 하니..
"the source file is different from when the module was built"
에러가 발생한 것이다.
소스 코드에 들어갈 수는 있지만, 찜찜함이 있어서 검색해 보았다.

그 원인은 해당 소스 코드의 인코딩 문제였다.
해당 소스 코드만 인코딩이 다르게 되어져있던 것이었다.
다른 소스 코드는 unicode로 된 반면, 접근할 수 없는 소스 코드에서만 당당하게 korean으로 되어 있던 것이다.

File->Advanced Save Options에 가면 해당 소스 파일의 인코딩을 변경시킬 수 있다.

소스 코드의 인코딩이 변경된 원인은 잘 모르겠다..
아마 이 코드를 보내준 쪽에서 실수했거나, 메일 전송 도중에 변경됐거나..
여튼.. 해당 에러들에 대해서는 이렇게 처리하면 된다.

참조 사이트 :
http://devdev.tistory.com/440 
http://social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/8576e147-e5d0-4776-b1d9-ad08e85b523f/
저작자 표시 비영리 동일 조건 변경 허락
Posted by jjangmin