Wireshark-dev: Re: [Wireshark-dev] Adding numbers to the tree
Date: Mon, 16 Feb 2009 15:38:31 +0000
Hi,

when i tried to use your code:

pi = proto_tree_add_text(tree, "Test: %s", tvb, 0, 0, _FunctionFunc());

_FunctionFunc() returns a char *
PROTO_ITEM_SET_GENERATED(pi);

I got these errors:

packet-foo.c
packet-foo.c(167) : error C2220: warning treated as error - no 'object' file generated
packet-foo.c(167) : warning C4133: 'function' : incompatible types - from 'char [9]' to 'tvbuff_t *'
packet-foo.c(167) : warning C4047: 'function' : 'gint' differs in levels of indirection from 'tvbuff_t *'
packet-foo.c(167) : warning C4024: 'proto_tree_add_text' : different types for formal and actual parameter 3
plugin.c
Generating Code...
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.EXE"' : return code '0x2'
Stop.


Any ideas as to how to fix this?
_______________________________________________________
> i have looked at those and it doesnt seem to be what i'm looking for. 
> I want to do something such as proto_tree_add_text(tree, "TEST", tvb, 
> 0, 0, function_call_that_returns_"TEST"() );
> 
> so that in the tree it will output something like TEST: TEST. however, 
> the first "TEST" is supposed to be an int, but i do not know how to 
> get around not using a static const value_string.

Try this:

  proto_tree_add_text(tree, "%d: TEST", tvb, 0, 0, function());

Since the value is coming from something other than the packet, put 
brackets around it:

  proto_item *pi;

  pi = proto_tree_add_text(tree, "%d: TEST", tvb, 0, 0, function));;
  PROTO_ITEM_SET_GENERATED(pi);

It will then show up as:

  [5: TEST]


Steve