7에서 컴파일 한 프로그램이 xp에서 mdb파일을 열지 못하는 문제 발생.

7 sp1이후 ADO관련 모듈에 변화가 생겨 하위호환성이 깨진듯 하다.(http://support.microsoft.com/kb/2640696)

업데이트 셋업파일을 받아야 하는데 윈도우가 정품이 아니라 받지 못했다. -_-;

다행히 수동으로 하는 방법이 있었다.


  • Msado60_Backcompat_i386.tlb (http://download.microsoft.com/download/6/4/3/64318ED2-7E18-4A5C-80E2-9BDA0DF02DB3/msado60_Backcompat_i386.tlb)
  • msado60_Backcompat_i386.tlb

  • 일단은 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 로 바꿨다고 나온다

    이렇게 하고 빌드했더니 이제 잘된다..


    출처: http://blog.daum.net/cjp777/1

    '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
    블로그 이미지

    란마12

    ,