2010-02-28 5 views
0

저는 C로 프로그래밍 중이며 소스 인사이트를 사용하고 있습니다.소스 인사이트 : 열거 형 값 표시

많은 상수가있는 열거 형 (예 : 100)이 있습니다. 변수 값을 출력하는 디버그 인쇄물을 가지고 있지만 정수형으로 인쇄합니다.

내가 원하는 것은 enum 상수의 이름을 클릭하고 어딘가에 표시된 숫자 값을 확인하는 것입니다. (난이 비주얼 스튜디오 플러그인에서 수행 봤어요, 그래서 가능해야한다.)

입니다

, 나는에 클릭합니다 (또는 선택, 또는 무언가) 내가

enum colors { 
    ORANGE, PURPLE, PINK 
}; 

가 있다고 가정 PURPLE1을 볼 수 있습니다 (이상적으로는 기호 창이나 컨텍스트 창이지만 이상하지는 않습니다).

Source Insight에서이 작업을 쉽게 수행 할 수 있습니까? 적어도 매크로 작성과 같은 어려운 방법이 있습니까?

답변

1

내가 찾은 유일한 방법은 열거 형의 각 멤버에 특정 값을 부여하는 것입니다. 그런 다음 열거 형 상수를 찾을 때 컨텍스트 창에 표시됩니다. 예 : 그것은 위대한 아니지만 작동

enum colors { 
    ORANGE = 0, 
    PURPLE = 1, 
    PINK = 2 
}; 

...

값으로 메시지 상자를 팝업 매크로를 기록 할 수있을 것입니다하지만 난 그것을 얻을 수없는 것 같습니다

3.50.0064에서 제대로 작동하려면 - 잘못된 enum이 커서 아래에 있다고 생각하는 것 같습니다. 내 테스트 매크로 코드는 하나의 "발견"로이 열거 목록에서 임의의 항목을 반환, 나를 위해

macro ShowEnum() 
{ 
    symbolname = GetCurSymbol() 
    symbol = GetSymbolLocation(symbolname) 

    if (symbol == nil) 
    Msg (symbolname # "not found") 
    else 
    Msg (symbolname # " found") 
} 

입니다. 우리가 SymbolParent()로 부모를 찾은 다음 SymbolChildren()/SymListCount()를 사용하여 자식을 반복 할 수 있습니다.

+0

@ 피터 - 이것은 값을 얻을 수있는 직접적인 방법이 없음을 의미합니다. 'orange, purple = 42, pink'의 경우 오렌지색은 0이되어야하지만 핑크색은 43이어야합니다. 또한 FWIW는 기존의 코드베이스가 크고 모든 것을위한 쓰기 권한조차 가지고 있지 않습니다. 따라서 값을 추가하는 것은 불가능합니다 (나중에 열거 형을 삽입하면 다시 번호를 매기는 것이 필요함). – JXG

+0

아마도 Source Insight 지원에 문의하여 위의 코드에서 버그를 수정할 수 있는지 알아보십시오. 그들은 가끔씩 패치를 발행하기 때문에 진화하는 제품으로 죽을지도 모른다. 아직 보살핌을 받고있다. –