2011-07-26 2 views
0

내가이 오류가 발생 .mm하기 .h 파일. 구현 파일 확장자를 에서 .m으로 변경하여 일부 C/C++ 관련 코드를 수용 할 때까지 모든 것이 올바르게 작동했습니다.유형의 오류가

프로토 타입 선언

- (void)changeButton : (V_DTLPROMO_BTN_T )button 
      btnFn : (V_DTLPROMO_BTN_FN_T)btnFn 

열거는

typedef enum 
{ 
    V_DTLPROMO_BTN_FN_NONE  = 0, /**< None      */ 
    V_DTLPROMO_BTN_FN_RECOMMEND = 1, /**< Recommend     */ 
    V_DTLPROMO_BTN_FN_ADD   = 2, /**< Add      */ 
    V_DTLPROMO_BTN_FN_DELETE  = 3, /**< Delete      */ 
    V_DTLPROMO_BTN_FN_LOCATE  = 4, /**< Locate      */ 
    V_DTLPROMO_BTN_FN_BUY_NOW  = 5, /**< Buy Now     */ 
    V_DTLPROMO_BTN_FN_SHOPPED  = 6, /**< Shopped     */ 
    V_DTLPROMO_BTN_FN_TWEET  = 7, /**< Locate      */ 
    V_DTLPROMO_BTN_FN_NUM   = 8 /**< Number of function choices */ 

} V_DTLPROMO_BTN_FN_T; 


    typedef enum 
{ 
    V_DTLPROMO_BTN_1  = 0, /**< Button: 1   */ 
    V_DTLPROMO_BTN_2  = 1, /**< Button: 2   */ 
    V_DTLPROMO_BTN_3  = 2, /**< Button: 3   */ 
    V_DTLPROMO_BTN_NUM = 3 /**< Number of buttons */ 

} V_DTLPROMO_BTN_T; 
+1

헤더 파일의 프로토 타입을 포함 할 수 있습니까? – Kevin

+0

나는 당신이 정확히 무슨 일이 일어나고 있는지 말해 줄 것이라고 기대할 것입니다 - 유형 불일치가 있습니다. 프로토 타입과 열거 형을 모두 선택하여 올바른지 확인하십시오. –

+1

.mm 및 .m 파일을 사용하는 경우 extern "C"가 필요합니다. 그렇지 않으면 일부는 C 링키지를 얻고 다른 일부는 C++ 링키지를 얻습니다. 아, 그리고 형식에서 함수 포인터라고 가정합니다. –

답변

0

V_DTLPROD_BTN_FN_T이 학급에 함수 것으로 나타났습니다 어떻게 든 detailprod에서 해당 열거 혼란스러워지고 있었다 다른 class.My detailpromo 클래스에서 선언 된 열거입니다있는 정의 이름은 두 클래스에서 모두 동일하므로 함수 이름을 changeButton에서 changeButtonForPromo으로 변경하려고했습니다. 트릭과 오류가 제거되었습니다. nt는 기술적 인 설명을 얻었다.

관련 문제