MFC 에서
x64 환경에서
ADO msado15.dll 를 사용하고 싶었다.
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" rename("EOF", "EndOfFile")
1. tlh 파일 추출하기
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF") rename("BOF", "adoBOF")
구문을 그대로 두고 컴파일을 진행 한다.
컴파일이 성공하면 Object 파일들이 생성 되는 Debug 폴더 또는 Release 폴더로 가보자.
#import 처리기가 하는 역할이 dll 에서 tlh 를 추출하여 헤더 파일에 그대로 붙여 넣는 작업을 해주는 역할이기 때문에 Debug 폴더나 Release 폴더에 가보면 다음과 같은 파일이 보일것이다.
msado15.tlh
msado15.tli
각각 용량은 167KB, 146KB 정도로 꽤 큰편이다.
위 두파일을 복사해서 #import 구문을 사용했던 소스와 동일한 경로에 붙여넣기 한다.
#import ".........
코드를 다음과 같이 변경한다.
#include "msado15.tlh"
이렇게 하면 #import 로 추출된 tlh 파일을 include 하는 구조이기 때문에 동일한 역할을 수행한다.
/MP 스위치를 켜고 빌드 -> 솔루션 다시 빌드 를 선택하여 컴파일을 진행해 보면 또 컴파일 실패가 된다.
msado15.tlh(5025): fatal error C1083: 포함 파일을 열 수 없습니다. "....\msado15.tli': No such file or directory"
하지만 컴파일 오류 내용을 잘 보면 포함 파일을 열 수 없습니다. 라고 나오는것을 알 수 있기 때문에 tlh 파일 안에서 msado15.tli 파일을 찾을 수 없다 라는 오류를 알 수 있다.
msado15.tlh 파일을 메모장등의 에디터로 열어보자.
편집 -> 찾기 메뉴를 이용하요 .tli 를 찾아 보면 거의 끝부분에서 다음 줄을 찾을 수 있다.
//
// Wrapper method implementations
//
#include ".......\debug\msado15.tli"
앞 경로는 개인정보 보호상 삭제..
Full Path 로 된 #include 문을 찾을 수 있는데 바로 이 부분의 경로가 Debug 폴더까지 들어가 있어서 파일을 찾을 수 없는것으로 나오는것이다.
경로를 #import 문이 있는 소스의 경로로 수정한 다음 다시 한번 컴파일 해보면
제대로 컴파일 되는것을 확인 할 수 있다.
'Programming > MFC' 카테고리의 다른 글
MFC Dialog Position Save & Load (0) | 2016.11.10 |
---|---|
MFC - 다이얼로그 생성시 발생되는 메세지들... (0) | 2016.11.07 |
x64 ADO import (0) | 2016.10.28 |
MSSQL 테이블명, 컬럼명 검색 (0) | 2016.10.27 |
Visual Studio 2013 클래스뷰, 리소스뷰 가 보이지 않을때 (0) | 2016.10.27 |