2014-08-29 9 views
0

proto_register_field_array(const int parent, hf_register_info *hf, const int num_records);에 사용 된 header_field의 비트 마스크 필드는 guint32이므로 64 비트 마스크를 사용할 수 없습니다. 어쨌든 내가 갈 수 있니? 특히Wireshark 해부 UINT64 비트 마스크

, 나는 60 비트 필드 그래서 난 형 FT_UINT64으로 필드를 생성하고 그 문제에 0xfffffffffffffff을 비트 마스크 위해 노력하고 있어요,하지만 C 코드를 컴파일 할 때 물론, 내가 얻을 :

warning: implicit conversion from 'long' to 'guint32' (aka 'unsigned int') changes value from 1152921504606846975 to 4294967295 [-Wconstant-conversion] 
      NULL, 0xfffffffffffffff, 

감사를 사전에 응답을 기다리고 있습니다.

답변

0

깊은 검색 후 유일한 해결 방법은 헤더 필드 정의에서 비트 마스크를 잊어 버리고 proto_tree_add_bits_item(proto_tree *tree, const int hf_index, tvbuff_t *tvb, const guint bit_offset, const gint no_of_bits, const guint encoding); 기능을 사용하는 것처럼 보입니다.

덕분에 어쨌든 :)

0

함수가 32 비트 매개 변수를 사용하는 경우 64 비트 매개 변수를 이해할 수있는 방법이 없습니다. 죄송합니다. 어떤 다른 기능이 원하는 것을 할 수 있는지보십시오.

+0

그래, 그게 내가하고있는 일이야. Wireshark에 기능이나 무언가가 있었는지 알 수 있다면 사용할 수 있습니다. – gigashock