TweetFollow Us on Twitter

Feb 95 Top 10
Volume Number:11
Issue Number:2
Column Tag:Think Top 10

Think Top 10

This monthly column, written by Symantec’s Technical Support Engineers, aims to provide you with technical information based on the use of Symantec products.

By Mark B. Baldwin and Steve Howard, Symantec Technical Support

Note: Source code files accompanying article are located on MacTech CD-ROM or source code disks.

Q. Why do I get bus errors when I create a CStyleText object by using the constructor with arguments?

A. In the process of upgrading the TCL, constructors with arguments were added to the classes. In this case, constructors with arguments do not create a new handle to a TERec, the macTE data member of the CStyleText object. To work around this, call the constructor with no arguments and call the IStyleTextX() method.

Q. I am having trouble using sizeof() with printf(). For example:

printf("char size is %d.", sizeof(char));

outputs "char size is 0." Why do I get the wrong result?

A. The output is wrong because the return value of the sizeof() function is a size_t (an unsigned long). Use an %ld rather than a %d as a format specifier. Thus, the correct syntax is

"printf ("The size of a char is %ld.", sizeof(char));" 

Q. How can I avoid problems deleting heap objects whose references are on the stack when using exception handling? The pointer (which is on the stack) to the object becomes invalid when the stack unwinds and only the destructors for automatic objects are guaranteed to be called when an exception is thrown.

A. To handle this, declare pointers as volatile. Last month we explained why you should use the volatile type. Below is a practical example. Use volatile file pointers so that stack unwinding does not reset the value of the pointer (prohibiting the file from being closed).

  funClass * volatile funClassPtr;    // Syntax for volatile declaration 
  funClassPtr = NULL;         // Pointer to NULL guarantees delete as safe.
  int myInt = 1;                      // Watch in debugger to see
                                      //   the stack unwind.
  try_ {
    funClassPtr = TCL_NEW(funClass, ());//macro for new operator
    myInt = 2;                          //put new value on stack
    Failure (2, 100);                   // Force exception 
  catch_all_() {                      //catch block
  delete funClassPtr;                 //this calls destructor.
     // myInt is reset to 1, delete removes the object from the  heap 
  end_try_                            //end of try block

Q. How can I use exception handling without using the Think Class Library?

A. To use exception handling without the Think Class Library, include BRLib and Exceptions.cp in your project. Also, compile with the directive #define NO_TCL

The four macros used to make exception handling work correctly are:


The macro AUTO_DESTRUCT_OBJECT will guarantee that the destructor is called for an automatic object on the stack. A destructor will only work on a completely constructed object. TCL_END_CONSTRUCTOR helps the compiler to determine the complete construction of an object.

Here’s an example that shows how the macros are used.

class funClass TCL_AUTO_DESTRUCT_OBJECT //macro in class header  
    funClass()  {                       // no arg constructor 
    cout<< "In constructor."<<endl;
    char * myStr = new char[64];        // allocate memory 
    TCL_END_CONSTRUCTOR                 // End of the constructor
    virtual ~funClass() {               // virtual destructor 
    TCL_START_DESTRUCTOR                // Beginning of the destructor 
    cout<< "In destructor."<<endl;
    delete [] myStr;                    // deallocate memory 

Q. Where can I get the Quickdraw GX headers?

A. APDA has a Quickdraw GX Developer’s Kit which contains a CD with the electronic versions of Inside Macintosh for GX, headers, required system software components, and excellent examples which are compilable under THINK C or Symantec C++. For ordering information, call (800) 282-2732. [If all you need is the header files, check out the MacTech Magazine online sites. See page 2 for details - Ed stb]

Q. When I build an application with the TCL, the application does not seem to be scriptable. How can I make it scriptable?

A. The default flags for the SIZE Resource of the application are set to not receive Background NULL Events. Make sure that the flags for your application have this bit turned on.

Q. I have a program that I’m converting from DOS and would like to be able to draw some simple graphics to the console window. How can I do that?

A. Don’t do it. If you draw to the console window, you will not receive update events. However, if you just can’t help yourself from going down this path, here is how to do it.

 #include <iostream.h>
 WindowPtr myWindow;         // To be used for the console window.
 void main (void)    {    
   cout << " ";                //A simple way to show the console.
   myWindow = FrontWindow();   //Get a pointer to the console.
   SetPort(myWindow);          //Set the port for drawing.
   PenNormal();                //Set the pen for drawing.
   LineTo(100,47);             //Draw a line.     

Q. If I am mixing C and C++ code, should I turn on the option to use Native Floating Point format?

A. Yes. Symantec’s C++ compiler is using the Native Floating Point format. To make sure that your floating point calculations give you the expected results, turn on Use Native Floating Point in the options for the C compiler.

Q. Will Symantec be updating the THINK Reference Databases?

A. Yes. THINK Reference is undergoing a massive overhaul. It will be updated for the Universal Headers and the Think Class Library, and will include new databases for C++ Error Messages. As before, references will be hyperlinked for easy access to information.

Special thanks to: Craig Conner, Colen Garoutte-Carson, Rick Hartmann, Michael Hopkins, Scott Morison, Celso Barriga, Kevin Irlen, Yuen Li, and Chris Prinos.


Community Search:
MacTech Search:

Software Updates via MacUpdate

Facility 47 (Games)
Facility 47 1.0.1 Device: iOS Universal Category: Games Price: $3.99, Version: 1.0.1 (iTunes) Description: You wake up alone and freezing in an icy cell. You try the cell door but it’s locked, it seems that you are stuck with no... | Read more »
The best Photoshop alternative on iPad
Instagram and Lightroom are great and all, but sometimes people need to get extra creative with their image editing.Like, Photoshop creative. If you're one of these people, take a look at our pick for the best mobile Photoshop experience on iPad... | Read more »
The Walking Dead: No Man’s Land guide -...
A new update for The Walking Dead: No Man’s Land was released last week, making it the perfect time for you to head back to your base and take out some walkers. Here’s the lowdown on what’s new to the game, and how to take advantage. [Read more] | Read more »
Goat Rider guide - Tips and tricks to st...
We've all been there. One second, we're riding high on a crazed goat, and the next, we've been tossed off it like someone who's no good at goat ridin'. [Read more] | Read more »
Real Boxing 2 CREED: How to become a gre...
Just in time for Rocky fans who can’t wait to see CREED, the latest movie, we have the official tie-in game,Real Boxing 2 CREED. It builds on the success of its predecessor and there’s lots to take in so we at 148apps thought we’d run you through... | Read more »
CoinOp Heroes 2 guide - How to build an...
CoinOp Heroes 2 justlaunched and, like all clickers, it's dangerously addictive stuff. You have to furiously tap your screen to defeat wave after wave of foes and earn an insane amount of cash to spend on character upgrades and an army of minions... | Read more »
Dr. Panda Firefighters (Education)
Dr. Panda Firefighters 1.0.1 Device: iOS Universal Category: Education Price: $2.99, Version: 1.0.1 (iTunes) Description: FIGHT FIRES AND SAVE THE DAY!Work together with Dr. Panda and his firefighting team to rescue his trapped... | Read more »
Puddle + (Games)
Puddle + 1.0 Device: iOS iPhone Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: Puddle is back in a new "+" edition featuring enhanced graphics, new videos and Apple TV support ! No IAP and No Ads. Dive into Puddle... | Read more »
Football Manager Mobile 2016 (Games)
Football Manager Mobile 2016 7.0.0 Device: iOS Universal Category: Games Price: $8.99, Version: 7.0.0 (iTunes) Description: Football Manager Mobile 2016 is designed to be played on the move and is the quickest way to manage your... | Read more »
Kill Shot Bravo guide - How to become an...
Kill Shot Bravo is a disturbing amount of fun. No matter how many times I play a game that encourages me to snipe people in the head, I feel a little uneasy at how satisfying it is. Here are some useful tips to get you started on your path to... | Read more »

Price Scanner via

Adorama Black Friday deals: Up to $400 off Ma...
Adorama has released their Black Friday deals for 2015. Save up to $400 on MacBook Pros, $200 on MacBooks and MacBook Airs, and $270 on iMacs. Use code RYBFDEAL during checkout to see these prices.... Read more
B&H Photo Deals: $200 off 12-inch 1.2GHz...
In addition to the B&H Photo Black Friday week sales we posted yesterday, B&H has lowered their price on two products to $200 off MSRP: - 12″ 1.2GHz Gray Retina MacBook: $1399 save $200 - 13... Read more
Best Buy Early Access: Today only, Up to $125...
Best Buy has iPad Air 2s on sale for up to $125 off MSRP and Apple Watch models on sale on their online store for up to $100 off MSRP with special codes through midnight CT tonight. Choose free... Read more
UPPERCASE DESIGNS Premium Ultra Thin Keyboard...
UPPERCASE Designs today announced its new Premium Ultra Thin Keyboard Protector and its Palm Rest Protector Set for the 12-inch MacBook. The accessories provide durable protection for the 12-inch... Read more
Al Jazeera Launches New iOS And Android Mobil...
Doha, Qatar based Al Jazeera has launched new mobile and tablet apps on the iOS and Android systems bringing the latest Al Jazeera news and programmes live together with on-demand personalisation.... Read more
B&H Photo Holiday Sale: Up to $250 off Ma...
B&H Photo has all new Macs on sale for up to $500 off MSRP as part of their Holiday sale including free shipping plus NY sales tax only: - 15″ 2.2GHz Retina MacBook Pro: $1799 $200 off - 15″ 2.... Read more
Free Aura ‘Ultimate’ Mac App For Gmail Update...
Miami, Florida based Crosscoded has announced Aura 1.2.0, an update to the Mac app for Gmail. Aura mixes the power of a native client with the flexibility of the Gmail web app with support for up to... Read more
Apple Will Edge Closer to Samsung in Smartpho...
Total smartphone shipments for 2015 are projected to decline by 9.7% to 1.286 billion units, according to the latest report from global market research firm TrendForce. Though Chinese vendors have... Read more
Sidefari – Split Screen Multitasking In Safar...
Francisco Cantu’s Sidefari is a simple web browser designed to act as a companion to Safari on the iPad. With multitasking in iOS 9, Sidefari uses the new Safari View Controller to show an extra... Read more
12-inch MacBooks in stock for up to $120 off,...
Adorama has 12″ Retina MacBooks in stock for up to $120 off MSRP including free shipping plus NY & NJ sales tax only. For a limited time, Adorama will include a free Apple USB-C to USB Adapter,... Read more

Jobs Board

*Apple* Retail - Multiple Positions (US) - A...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
Merchant Operations Manager: *Apple* Pay -...
Changing the world is all in a day's work at Apple . If you love innovation, here's your chance to make a career of it. You'll work hard. But the job comes with more than Read more
*Apple* Pay QA Manager - Apple Inc. (United...
Changing the world is all in a day's work at Apple . If you love innovation, here's your chance to make a career of it. You'll work hard. But the job comes with more than Read more
Sr Software Engineer *Apple* Pay - Apple In...
Changing the world is all in a day's work at Apple . If you love innovation, here's your chance to make a career of it. You'll work hard. But the job comes with more than Read more
Hardware Systems Architect - *Apple* Watch...
# Hardware Systems Architect - Apple Watch Job Number: 38449977 Santa Clara Valley, Califo ia, United States Posted: Apr. 16, 2015 Weekly Hours: **Job Summary** The Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.