본문 바로가기

컴퓨터 공학 자료(학부)/OpenGL

일리히트 비쥬얼스튜디오2008에서 사용시


첫 예제 Helloworld 실행시, 컴파일 에러는 없는데 계속 콘솔창이 잠깐 떴다 꺼지는경우.


"동적 라이브러리에 있는 함수를 사용하는 프로그램인데. 그 함수를 가지고 있는 동적라이브러리 파일이 시스템에 안잡혀서 그런듯 합니다.

님이 사용하는 함수중에 윈도우 기본 dll이 아닌 특정 dll에 있는 함수가 있을 것입니다. 그 함수가 정의되어 있는 dll파일을 프로그램과 같이 배포하셔야 다른 컴퓨터에서도 동작을 할 수 있습니다.

같이 배포를 원치 않다면 함수를 static library로 exe에 포함시켜야 합니다.
링크과정에서 처리되는 것이기 때문에 링크옵션쪽에서 만져주면 됩니다."


즉 시스템에서 이 helloworld파일에서 사용된 함수에 대한 dll파일을 인식못하는 문제이므로
alt+f7에서 디버그 옵션에서  working directory를 현재 실행파일이 있는 디렉토리로 설정해주면 된다

그래도 안되는경우는 그냥 cpp 내에서 파일 읽어오는 경로를 설정해주는 수밖에 없다 


<참고>
윈도우 프로그램에서 dll을 찾는 순서는
1. 클라이언트 프로그램이 포함된 디렉토리
2. 윈도우즈의 시스템 디렉토리
3. 윈도우즈 디렉토리
4. PATH  환경변수가 지정하는 모든 디렉토리
라고 한다.

 


휴 이 간단한 화면볼려고 몇시간을 헤맸는지 모르겠네

이거 덕분에 동적 라이브러리 링크(dll) 파일 공부도 하고
어떻게 돌아가는지 까지 덤으로 알아냈다-_=;
젠장할.