You might want to check this out:

http://developer.apple.com/legacy/mac/library/technotes/tn2005/tn2130.html

A handle is a pointer to a pointer, that's all. Handles were pretty
fundamental to the Mac OS prior to X but don't really make sense
anymore, and the tech note recommends you use malloc() and calloc(),
in fact NewHandle() and NewPtr() just maps to those.

On Apr 2, 8:29 pm, Steve deRosier <[email protected]> wrote:
> OK,
> I'm answering my own question.  You just have to extern "C" the main
> function call:
> extern "C" pascal OSErr HelloWorld(BBXTCallbackBlock *callbacks,
> WindowPtr w, long flags, AppleEvent* event, AppleEvent* reply)
> {
> ...
>
> }
>
> That gets it to work.
>
> So, now the follow up question: How the heck do you debug a plugin?
> I'd love to run it in a debugger, but I don't really see how to do
> that.  printf/cout tracing doesn't seem possible as there's no
> terminal.
>
> While I'm very experienced with C/C++ programming in a variety of
> situations (embedded and Linux are my primary fields), I'm fairly new
> to the Mac API and BBEdit plugins specifically.  All of this passing
> around of opaque Handles and use of pascal-style strings has me fairly
> confused.  So, is there a concise tutorial of what a Handle is, how to
> copy the data to/from standard C or C++ strings, what the best
> practices in this are?
>
> Thanks,
> - Steve
>
>
>
> On Fri, Apr 2, 2010 at 4:03 PM, Steve deRosier <[email protected]> wrote:
> > I'm trying to write a plugin for BBEdit.  The SDK sample is in C, but
> > I'd like to use C++ as there's some existing higher-level
> > functionality I'd like to connect with my plugin.  I see the Python
> > language module is in C++ (or at least is contained in .cp files), so
> > I assume it's possible, but if I compile my plugin as C++, when I use
> > it in BBEdit, BBEdit segfaults.
>
> > Does anyone know:
>
> > 1. Is it possible to write a BBEdit plugin in C++?
> > 2. If so, what's the proper incantation to make it work?  Best would
> > be if someone could give me an idea of how to go from the HelloWorld
> > plugin in the SDK to a version that compiles in C++.
>
> > Thanks,
> > - Steve

-- 
You received this message because you are subscribed to the 
"BBEdit Talk" discussion group on Google Groups.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/bbedit?hl=en
If you have a feature request or would like to report a problem, 
please email "[email protected]" rather than posting to the group.

To unsubscribe, reply using "remove me" as the subject.

Reply via email to