thanks! That is starting to make sense. You have to *assume* a lot in these plugins. The documentation is slim.
wade From: "Theodore H. Smith" <[email protected]> > > > 2. RB Class method found, constructor question (Wade Maxfield) > > > Subject: RB Class method found, constructor question > > To: [email protected] > > Message-ID: > > <[email protected]> > > Content-Type: text/plain; charset=ISO-8859-1 > > > > After some feedback, I found a class registration method (in glue > > and in > > examples (TestPlugin)) > > > > However, I don't know what they want in the > > "initializer"/"deinitializer" > > field of the class registration structure, since there are no > > examples. > > > > MyClass::MyClass() {foo(); etc...} is my constructor, I assume > > that is > > what is meant by an "initializer." > > > > Since the class isn't instantiated, how do I fill in the field > > that the > > TestPlugin() has listed as NULL for the "initializer", er > > "constructor" ? > > The problem of compiling for Linux... is a separate problem than how > to write a class. > > I suggest you approach each problem separately. Use the class examples > on the Mac. And once you know what to do, copy/paste those examples > into the Linux project. > > Also, it's probably a bad idea to mix C++ classes with RB classes. You > should write in C mode. That is, no C++ constructors for your actual > class. Although an RB class can make use of C++ classes if they are > created with new and delete and stored as properties of the RB class. > > Here's some of my "init/deinit" code. > > void ED_St_Constructor( OPObject self ) { > FuzzySettings* fz = GetSettingsData(self); > > fz->GapStartCost = 1; > fz->GapStretchCost = 1; > fz->Mode = kFuzzLevenshtein; > fz->self = self; > fz->MaxDepth = 1024; > > FillDistances_( fz, false ); > > fzsSanity_( fz, false ); > } > > > void ED_St_Destroy( OPObject self ) { > FuzzySettings* fz = GetSettingsData(self); > fzsSanity_( fz, true ); > SentiFree( fz->Distances ); > fz->Distances = 0; > OPClearRef( fz->Dictionary ); > } > > Unfortunately it uses totally different conventions :) OPObject is > just a REALobject, and I don't use the standard Object to struct > function, instead I write my own. > > But you get the point, it's much the same as a normal method. > > You don't NEED a init or deinit method because of RB itself. It's just > there if your plugin happens to need it, but RB doesn't force that > need on you. > > > > > _______________________________________________ Unsubscribe or switch delivery mode: <http://www.realsoftware.com/support/listmanager/> Search the archives: <http://support.realsoftware.com/listarchives/lists.html>
