안녕하세요~ DLL 관련해서 질문을 드립니다.
메신저 프로그램에 탭컨트롤을 붙이려고 합니다.
version.dll을 후킹해서 처리를 하고 있습니다.
메신저가 실행될때 후킹된 version.dll에서 정보를 약간 바꿔서 탭컨트롤을 붙이게끔 했습니다.
개발환경은 VS2010이고 32비트입니다. UNICODE 프로젝트구요~
윈도우7과 윈도우XP에 전부 따로 따로 설치해서 빌드하고 테스트를 하고 있습니다.
윈도우7에서는 후킹한 version.dll을 메신저의 실행파일 폴더에 넣어두고 하면 탭컨트롤이 잘 부착되어 실행이 됩니다.
하지만 XP에서는 메신저 실행파일안에 있는 version.dll을 로드하지 않고 system32에 있는 version.dll을 로드하더군요.
디펜던스 워커로 확인을 해도 윈도우7은 메신저 폴더안에 있는 version.dll을...
XP는 system32 폴더안에 있는 version.dll을 로드합니다.
XP에서 <실행파일.exe.local> 파일을 만들어 현재 폴더안에 있는 dll을 먼저 찾게해서
실행시키니까 진입 application fail initilalize properly(0x00000005) 에러가 나더군요..;;
dll 디버깅을 해봐도 DLLMain()안에 들어 오기전에 저 에러가 뜹니다.
XP와 윈도우7의 DLL을 찾는 순서등은 차이가 없는걸로 알고 있는데 어떻게 해결해야 할지
감이 잘 안잡혀 이렇게 질문드립니다.
알려주시면 고맙겠습니다. 그럼 좋은 하루 되세요~
[최초 등록일: ]
[최종 수정일: 12/13/2011]