7에서 컴파일 한 프로그램이 xp에서 mdb파일을 열지 못하는 문제 발생.
7 sp1이후 ADO관련 모듈에 변화가 생겨 하위호환성이 깨진듯 하다.(http://support.microsoft.com/kb/2640696)
업데이트 셋업파일을 받아야 하는데 윈도우가 정품이 아니라 받지 못했다. -_-;
다행히 수동으로 하는 방법이 있었다.
일단은 32bit만 한다 64비트도 있다
일단 C:\Program Files\Common Files\System\ado에 다운 받는다.
커멘드창을 실행하고
C:\Program Files\Common Files\System\ado> 이렇게 실행 위치를 바꾸고
%windir%\Microsoft.NET\Framework\v4.0.30319\regtlibv12 msado60_Backcompat_i386.tlb
그럼 바로 요런 메세지가 뜰것이다
Registration of msado60_Backcompat_i386.tlb successful.
그렇다면 레지스트
리를 확인해보자
HKEY_CLASSES_ROOT\TypeLib\{0C0FF45D-87C8-4333-9075-3D9B4D64F9FC}\6.0\0\win32
데이터위치가
C:\Program Files\Common Files\System\ado\msado60_Backcompat_i386.tlb 이렇게 되어있는지 확인한다.
여기까지 됐다면 당신은 성공한것이다 그럼 계속 아래 글대로 따라해보기 바란다.
stdafx.h에서 바꾸란다.
#import! "msado15.dll" no_namespace rename("EOF","EndOfFile")요런걸
#import! "msado60_Backcompat.tlb" no_namespace rename("EOF","EndOfFile")게 바꾸란다
Msado60_Backcompat_i386.tlb 파일을
비쥬얼 스튜디오에 추가시킨다
//#import! "c:\program files\common files\system\ado\msado15.dll" rename ("EOF","adoEOF") no_namespace
#import! "C:/Program Files/Common Files/System/ado/msado60_Backcompat_i386.tlb" no_namespace rename("EOF","EndOfFile")그리고 나는 이렇게 바꿨다.
그랬더니 빌드가 되면서 에러가 뜬다.
_RecordsetPtr 에 멤버 변수가 바꿨다고 에러가 뜬다
adoEOF---->> EndOfFile 로 바꿨다고 나온다
이렇게 하고 빌드했더니 이제 잘된다..
'etc' 카테고리의 다른 글
DIR vs PATH (0) | 2015.01.28 |
---|---|
WDK 샘플 설치 삽질기 (0) | 2013.07.28 |
FTP vs HTTP (0) | 2011.04.14 |
파일날짜 변경 시점 (0) | 2010.07.09 |
MSComm32.ocx 라이센스 등록 (0) | 2010.06.18 |