none
LNK1143 error 문의 드립니다. RRS feed

  • 질문

  • 안녕하세요.

     VS 6.0을 사용하고 있구요,

    excel automation 관련 아래 파일들을 import 하였는데.

    #import <mso9.dll>
    #import <vbe6ext.olb>
    #import <Excel9.olb>

    이번에 Excel 2007 test를 하기 위해... import하는 파일들을 아래와 같이 변경하였습니다.

    #import <mso.dll>
    #import <vbe6ext.olb>
    #import <excel.exe>

    변경후, 아래와 같은 error 가 발생합니다.
    StdAfx.obj : fatal error LNK1143: invalid or corrupt file: no symbol for comdat section 0xffff8000
    MSDN을 찾아보고 했는데 해결이 안되어서 도움을 청합니다.

    2009년 10월 14일 수요일 오전 11:34

모든 응답

  • 안녕하세요^^
    포럼에는 글이 잘 올라오지 않아서 오랜만에 왔는데 질문 글이 있어서 제가 잘 모르는 분야지만 한번 찾아 보았습니다.

    먼저 저는 게임 프로그래머이고 VS6이나 Excel 2007을 사용하고 있지 않아서 경험이나 테스트를 못해 봤다는 것을 인지 하셨으면 합니다.

    날아라병아리님과 같은 문제를 겪은 사람이 있는지 검색을 해보았는데 딱히 찾지를 못했습니다.
    다만 여러 글을 보던 중 의심 되는 부분이 있더군요.

    대부분 C++에서 Excel 프로그래밍을 할 때는 impoty할 때 각 파일의 위치를 full pass를 다 적어 주더군요.
    그 이유가 다양한 버전의 Excel 프로그램이 설치 되어 있는 경우 특정 버전을 선택하기 위해서였습니다.

     예를들어 Excel.exe의 경우
    Excel 2003에서는
    #import "C:\Program Files\Microsoft Office\Office11\EXCEL.EXE" \
         rename("DialogBox", "ExcelDialogBox") \
         rename("RGB", "ExcelRGB")

    Excel 2007에서는
    #import "C:\Program Files\Microsoft Office\Office12\EXCEL.EXE" rename("DialogBox", "DialogBoxXL") rename("RGB", "RBGXL") rename("DocumentProperties", "DocumentPropertiesXL") no_dual_interfaces

    라는 식으로 기술하더군요.
    위에 나온 rename은 import하는 타입 라이브러리 내의 이름과 API 이름이 같은 것으로 이름을 바꾸어 줍니다.


    제 생각에 LNK1143 에러가 나온 이유는 날아라병아리님은 Excel 2007의 Excel 컴포넌트를 import 할 생각이었지만
    빌드할 때 Excel 2007의 것이 아닌 다른 버전의 Excel 컴포넌트가 import 되어서 발생하지 않았을까 생각합니다
    .
    import의 파일 위치를 명시적으로 지정해 보고 빌드를 한번 하면 해결 되지 않을까 생각합니다.


    아래 사이트의 일본어로 된 C++에서 Excel 프로그래밍할 때의 글인데 한번 참고해 보세요
    (일본어를 모르실테니 네이버의 번역기를 사용하시면 됩니다. 일한 번역은 거의 90% 이상 됩니다.

    Excel의 조작(#import)  http://www.crimson-systems.com/tips/t083.htm
    C++로 Excel 이용   http://www-online.kek.jp/~keibun/pukiwiki/index.php?C%2B%2B%A4%CB%A4%AA%A4%B1%A4%EBExcel%A4%CE%CD%F8%CD%D1
    네이버 일한 번역기 http://jpdic.naver.com/


    Twitter : jacking75 블로그 : http://jacking.tistory.com/
    2009년 10월 18일 일요일 오전 5:41