none
include讀卡機的CASMCARD.H時出現重複定義的錯誤 RRS feed

  • 問題

  •  

    使用visual studio 2005 建立ActiveX專案時, 加入讀卡機廠商所提供的CASMCARD.H,

    compile時產生7 個重複定義的錯誤.

     

    錯誤 1 error C2371: 'SCARD_READERSTATEA' : 重複定義; 基本型別不相同

    錯誤 2 error C2371: 'SCARD_READERSTATEW' : 重複定義; 基本型別不相同 
    錯誤 3 error C2371: 'OPENCARDNAMEA' : 重複定義; 基本型別不相同 
    錯誤 4 error C2371: 'LPOPENCARDNAMEA' : 重複定義; 基本型別不相同 
    錯誤 5 error C2371: 'OPENCARDNAMEW' : 重複定義; 基本型別不相同 

    錯誤 6 error C2371: 'LPOPENCARDNAMEW' : 重複定義; 基本型別不相同 
    錯誤 7 fatal error C1189: #error :  WINDOWS.H already included.  MFC apps must not #include <windows.h> d:\program files\microsoft visual studio 8\vc\atlmfc\include\afxv_w32.h 16 

    如果用visual studio "移至定義" 會出現 語意模糊的視窗. 列出

    專案的 CASMCARD.H 以及 系統的 WinSCard.H

    請問, 有何方法可以避免這個問題呢?

     

    ~感謝

    KM

    2008年8月25日 下午 01:50

解答

  • 非常感謝您的解答,

    現已把發現重複定義的部份從廠商提供的.H檔中註解掉, 重新compile已經OK.

    當然中間還是有詢問廠商得到技術支援.

     

    2008年9月2日 上午 04:44

所有回覆

  • HI,

     

    如果兩個HEADER FILE造成重複定義, 您只能擇一使用, 可以考慮使用Winscard.h看是否能夠使用, 否則就要想辦法不使用Winscard.h了

     

    tihs

     

    2008年8月26日 上午 01:44
  • 感謝您的回覆,

    現在會先採用winscard.h看是否能夠使用, 但可否再請問,如果不希望使用winscard.h要如何設定呢?

     

    KM

    2008年8月26日 上午 03:07
  • HI,

     

    您的廠商提供的.H檔應該是給WIN32程式使用的, 當您開發MFC程式時應該可以不需要引入廠商提供的.H檔, 如果要不引入winscard.h會比較麻煩, 因為要讓程式不引入winscard.h, 就不能夠引入包含winscard.h的其他.H檔, 因牽涉過廣, 要視狀況調整


    tihs

     

    2008年8月27日 上午 06:04
  • 非常感謝您的解答,

    現已把發現重複定義的部份從廠商提供的.H檔中註解掉, 重新compile已經OK.

    當然中間還是有詢問廠商得到技術支援.

     

    2008年9月2日 上午 04:44