Shared pain
Steve Teale
steve.teale at britseyeview.com
Thu Nov 18 10:53:53 PST 2010
On Thu, 18 Nov 2010 08:33:12 -0500, Steven Schveighoffer wrote:
>
> I think using a class in D is a good idea. But what you may need is
> global functions which forward to your class methods. This is how I
> would probably do it.
>
> -Steve
Steve,
Thanks. I kind of went that way. Having done the laborious C OOP style
thing, I put most of the methods back into the struct, just leaving the
extern(Windows) functions at global scope - they referred to the
__gshare'd object explicitly - I hate that.
Then I hid all of the crap behind a class that sneakily referred to the
__gshared struct, but at least now to an external user of the module the
interface looks much the same as it did before.
Now it works OK with the test case example - a service that just writes
entries in the event log. However, the real service I'm trying to update
works fine if I run it in debug mode (i.e. basically as just an
executable), but if I run it as a service it seems to crash the first
time I use a RegExp.find().
As you can imagine, this is terrible to debug - printf or similar is bad
enough, but for the service I'm pushing entries into the Windows event
logger system. Fortunately my D class for doing that has survived the D2
changes. I'm going to try tweaking the service so it will interact with
the desktop, then at least I can revert to printf.
But first I think I'll stop and do some carpentry for a couple of days.
Then eventually something might dawn on me.
Steve
More information about the Digitalmars-d
mailing list