IT한 것/WINDOWS 16

VisualStudio 2005 x64 Debug 프로젝트의 CRT 링킹 에러

나름 황당한 경우를 만났다. ISAPI 모듈을 개발하는 중, 릴리즈 모드로 로그 확인을 해보다가. 반복적인 문제가 생겨, 좀 상세한 디버깅을 할 필요가 있었다. 때문에 디버그 모드로 빌드하여 iis를 기동시켰는데, LoadLibraryEx에 문제가 발생하였다며 Side by side를 확인해 보라는 오류가 발생했다. side by side(이하 sxs) 검사를 해보긴 했는데, 해당 dll이 존재하지 않은 것 같아. 강제적으로 복사도 해보고 했는데. Dependency walker로 확인하면 okay 떨어지다가도, iis가 로딩하면 오류가 발생하는 것을 확인했다. 이리저리 추척해보니. vs2005 설치시에 x64 컴파일러 및 crt등 이 묶인 패키지를 설치하지 않았더라....(플랫폼은 windows 7 x..

IT한 것/WINDOWS 2009.08.10

Visual Studio 2005 이상에서 출력파일 위치 설정

기본 설정대로 개발환경을 꾸미다보면, 약간 애매한 문제가 발생한다. 다름이 아니라 x86 / x64 프로젝트를 동시에 관리해야하는데, 만들어보면 알겠지만, x86 프로젝트의 결과물은 Solution/Project 디렉토리에 Debug, Release등을 만들어 그 디렉토리에 출력 파일이 생성된다. 반면에 x64 프로젝트의 결과물은 Solution 디렉토리에 Debug, Release 등을 만들어 최종 결과물을 저장하고, Solution/Project/x64 디렉토리에 Debug, Release 등을 만들어 중간 결과물을 저장한다. 어쩌란 말인가 생각이 든다 ㅋㅋ 하여튼 프로젝트 설정에 컴파일이나 링크시 출력 파일 위치를 보면 $(IntDir), $(OutDir) 등으로 설정되어 있다. user macro..

IT한 것/WINDOWS 2009.03.11

ISAPI Filter 디버깅 하는 법.

※ Visual Studio를 이용하여 디버깅을 하는 법을 기본적으로 숙지하고 있다는 전제하에 글을 씁니다. 어째서 이런 글을 쓰는가. 일반 응용 프로그램은 디버거에 의해서 실행거나, 이미 실행중인 프로세스 ID를 알아내 디버가 달라붙는?(attach) 방식으로 디버깅을 합니다. 그러나 ISAPI Filter를 디버깅 하려면 IIS의 구조를 조금 더 알아야 가능 합니다.디버깅 한다고 고생을 조금 했기 때문에 글로 기록을 남기고 싶어서.준비물디버거 (Visual Studio 를 이용했음)IIS 서버 (Windows vista의 IIS 7.0을 이용했음)ISAPI Filter (자체 개발중인 것을 이용함)ISAPI Filter는 디버깅은 어떻게 하나?IIS 서버는 직접적으로 ISAPI Filter를 호출하지..

IT한 것/WINDOWS 2009.03.06

Side-by-side Assemblies

원문: http://msdn.microsoft.com/ko-kr/library/aa376307(en-us,VS.85).aspx 윈도우즈 side-by-side assembly는 manifest로 설명된다. side-by-side assembly는 항상 프로그램과 함께 제공되는 리소스(DLL 그룹, 윈도우즈 클래스, COM 서버, 타입 라이브러리 또는 인터페이스)의 묶음을 포함한다. 이러한 것들이 assembly manifest로 묘사된다. 일반적으로 side-by-side assembly는 단일 DLL 이다. 예를 들어, Microsoft Visual C++ developement system run-time 라이브러리가 복수개의 파일을 포함하는 반면에 Microsoft COMCTL32 assembly는..

IT한 것/WINDOWS 2009.02.09