• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Struct introspection or information
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Struct introspection or information


  • Subject: Re: Struct introspection or information
  • From: Steve Christensen <email@hidden>
  • Date: Tue, 6 Nov 2007 13:08:44 -0800

Well, there's nothing preventing you from disassembling code that references the structure fields to determine the offsets and sizes...


On Nov 6, 2007, at 12:04 PM, Monitus wrote:

Right - I thought that's what I understood too... I was just wondering if maybe there was a way to somehow access the values in a struct "instance" by offset or something... But I guess if I can't know the size of each field, offsets are not usable either...

Thanks!

Jean.

On Nov 6, 2007, at 1:28 PM, Steve Christensen wrote:

The main issue is that a structure declaration is last used by the compiler to determine how to allocate memory for a structure instance, and what the offset and size of a field is so it can be accessed correctly. Once the assembly instructions corresponding to the original C statements has been generated there's no further need to know what the fields were named or what they actually refer to.


On Nov 6, 2007, at 8:25 AM, Monitus wrote:

Thank you to all who replied... Yes, the original problem stated that I didn't have access to any kind of structure definition... Still, I tried the @encode suggestion, and it looks like it gave me an incomplete result - like @encode(struct __MyStruct) gave "{__My"... Strange... Anyway, I'm now looking for other ways of doing what I need to do, a I seriously doubt i can get to the structure info...

Thanks again!

Jean.

On Nov 5, 2007, at 8:53 PM, Steve Christensen wrote:

I may have misunderstood, but I thought the OP mentioned not having access to the headers that define certain C structs. If that's the case, we're talking about opaque structures from the point of view of the caller, right?


On Nov 5, 2007, at 4:34 PM, David Spooner wrote:


You might get some mileage out of the @encode() directive. It produces a c-string encoding of a c type, which (with significant effort) can be parsed in order to traverse a c structure of that type. These encodings do not contain the field names of structures, but they often contain structure tag names...


More information is available in the section "Type Encodings" of
The Objective-C 2.0 Programming Language

dave

On 5-Nov-07, at 1:33 PM, Monitus wrote:

Good day everyone - sorry if this is not totally Cocoa- related: if there's a better list for this, please let me know and accept my apologies in advance...

Is there any way to know the fields in a C structure, if you don't have the headers that define it? Or at the very least, is it possible to access it's field values?

Thanks!

Jean Le Clerc.

_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


References: 
 >Struct introspection or information (From: Monitus <email@hidden>)
 >Re: Struct introspection or information (From: David Spooner <email@hidden>)
 >Re: Struct introspection or information (From: Steve Christensen <email@hidden>)
 >Re: Struct introspection or information (From: Steve Christensen <email@hidden>)

  • Prev by Date: Re: Hexadecimal addition
  • Next by Date: Fish Eye Custom NSMenu Sample Code
  • Previous by thread: Re: Struct introspection or information
  • Next by thread: Log File Watcher
  • Index(es):
    • Date
    • Thread