TweetFollow Us on Twitter

Apr 95 Top 10
Volume Number:11
Issue Number:4
Column Tag:Symantec Top 10

Symantec 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 Steve Howard and Glenn Austin, Symantec Technical Support

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

Due to the frequency of calls and mail on the following problem, we are repeating a question published earlier.

Q: Why do derived classes of ifstream cause a bus error when they read in a stream?

A: Any class indirectly derived from the virtual base class ios needs to explicitly call the constructor for ios to initialize the data stream’s buffer. For example:

class myifstream : public ifstream {
  myifstream(char * s) : ios(&buffer), 
             ifstream(s){}
 }

Q: When I set project options for new projects, the options do not transfer to any of new projects I create. How do I get the options to remain set when I create new projects?

A: The “new project” option will only work if you remove the project model folder for new projects contained within the (Project Models) folder. The THINK Project Manager will then honor the “new project” options.

Q: I am trying to use Gestalt to find out whether the system has asynchronous SCSI abilities, or whether Quickdraw GX is present, but can’t find the right selectors to use. Where do I get this information?

A: There are some Gestalt selectors that are not in GestaltEqu.h. Lists of most known Gestalt selectors and selector codes are available at various ftp sites (see the URL page for possible sites). Once you find the selectors you need, you can add them to GestaltEqu.h, and then re-precompile your MacHeaders, MacHeaders++, and TCLHeaders with the newly-modified GestaltEqu.h.

A simpler way, if your project allows it, would be to add your new selectors into one of your own header files. This would allow you to not need to rebuild your prebuilt header files, as well as allow you to safely replace your GestaltEqu.h with a new one sometime later (without worrying about losing any of your custom-added equates).

To find the answer to your question, we went to MIDnet’s Info-Mac searcher (http://www.mid.net/INFO-MAC) and did a keyword search on gestalt. We found the following file:
ftp://ftp.hawaii.edu/mirrors/info-mac/dev/info/gestalt-selectors-27.hqx
and have excerpted a few useful lines (in Pascal terminology):

const
     gestaltGraphicsVersion = 'grfx';  {Gestalt version selector}
     gestaltSCSI            = 'scsi';  {SCSI Manager attributes}
     gestaltAsyncSCSI       = 0;       {Supports asynchronous SCSI}

The file we found has much more interesting data, so be sure to go see what other selectors might better suit your purposes.

Q: I want to use the 68881 option in my C++ project. What libraries will I need to recompile?

A: To use the 68881 option, turn on “Generate 68881” for both THINK C and C++, then rebuild the following libraries: CPlusLib, ANSI++, unix++, and IOStreams. Some libraries contain both .c and .cp files, and that’s why you’ll need to turn on the option for both C and C++.

Q: How do I get my CIconButtons to print?

A: In VA, create a new subclass of CIconButton, called CPIconButton. Change your icon buttons to type CPIconButton, then save and generate. In TPM, open CPIconButton.h, and add the following method to the class:

 virtual void DrawIcon(Boolean fHilite)
 {
     short   drawState = CalcDrawState(fHilite);

        // Set up the correct icon
     if (printing)
         cicnH = nil;
     else
         cicnH = itsCicnH[drawState];

     BlockMove(&itsIcon[drawState], &icon, kIconBytes);
     Prepare();

       // Let base class hilight only if color hilighting
    CIconPane::DrawIcon(fHilite && colorHilite);
 }

This will force the icon to draw in black & white on the printer, and it will draw correctly on the screen.

Q: I have created a subview that has a CDialogText item and I need a pointer to the item. Can you show me the easiest way to do this?

A: This is a simple two step process. First, get the ID of your CDialogText resource; these IDs are in the generated header file. The header file’s name is the subview name with the word “Items.h” appended (e.g. “SubviewItems.h”). Second, call the FindViewByID method, passing this ID.

#include “SubviewItems.h” // list of resource IDs for objects in the subview
 
CDialogText *myText;
// kMyDialogTextID is found in SubviewItems.h
myText = (CDialogText*)fMain_SubviewName->
                               FindViewByID(kMyDialogTextID);

Q: I am trying to convert a Pascal record that has a data type of Byte into a C++ structure. I am using the C type char as the equivalent of Byte. Why am I getting bizarre results?

A: The Pascal type Byte is equivalent to an unsigned char in C or C++.

Q: How do I get CTable to show only 3 columns, no matter what the size of the window?

A: To make the table show a constant number of columns, override the Draw method and resize the columns based on the current width of the window. For example:

 void CDerivedArray::Draw(Rect *area)
 {
        LongRect r;

        GetFrame(&r); // Get current frame of table pane

        static int oldWidth=0;

        int width=r.right-r.left;  //find width

        if(width!=oldWidth)  //If width hasn’t changed, don’t do anything
        {
                 int numCol=GetColCount();
                 for(int x=0;x<numCol;x++)
                 {
                          SetColWidth(x,width/numCol);
                 }

                    oldWidth=width;  //Update width
        }

         inherited::Draw(area);  //Draw table
 }

Q: I am using the default console window and want to change the foreground and background colors. Is there any way that THINK C will allow me to do that?

A: You cannot change the foreground or background colors on the default console window. You can to control some aspects of the console like the text font, size and face. You can also control how input to the console window is read. For more information on using the console window, you can refer to the Online Documentation that came with your THINK C/ Symantec C++ product or in THINK Reference under “Console Package Intro” and “Console Input Mode”.

Q: I have created a Visual Architect project, added some views and selected generate all. I have not added any of my own code but, when I try to bring the project up to date, I get an error -192 (resource not found). If I have not added code, what causes this error?

A: In VA, you will get this error if you have defined commands that have the following format in the Command Dialog:

 
   In Class:   CMain
   Do:  Open
   View:       None

When that command is generated, VA will attempt to create an Open command and associate it with an existing ‘CVue’ resource. Since you have not assigned a view to the command, there is no corresponding ‘CVue’ resource. Assign a view to the command to alleviate the problem.

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

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Geekbench 4.4.0 - Measure processor and...
Geekbench provides a comprehensive set of benchmarks engineered to quickly and accurately measure processor and memory performance. Designed to make benchmarks easy to run and easy to understand,... Read more
CleanMyMac X 4.4.4 - Delete files that w...
CleanMyMac makes space for the things you love. Sporting a range of ingenious new features, CleanMyMac lets you safely and intelligently scan and clean your entire system, delete large, unused files... Read more
TeamViewer 14.4.2669 - Establish remote...
TeamViewer gives you remote control of any computer or Mac over the Internet within seconds or can be used for online meetings. Find out why more than 200 million users trust TeamViewer! Free for non... Read more
Paperless 3.0.6 - $69.95
Paperless is a digital documents manager. Remember when everyone talked about how we would soon be a paperless society? Now it seems like we use paper more than ever. Let's face it - we need and we... Read more
BetterTouchTool 3.141 - Customize multi-...
BetterTouchTool adds many new, fully customizable gestures to the Magic Mouse, Multi-Touch MacBook trackpad, and Magic Trackpad. These gestures are customizable: Magic Mouse: Pinch in / out (zoom)... Read more
TextMate 2.0.rc.29 - Code/markup editor...
TextMate is a versatile plain text editor with a unique and innovative feature set which caused it to win an Apple Design Award for Best Mac OS X Developer Tool in August 2006 A rapidly growing... Read more
Little Snitch 4.4.1 - Alerts you about o...
Little Snitch gives you control over your private outgoing data. Track background activity As soon as your computer connects to the Internet, applications often have permission to send any... Read more
Little Snitch 4.4 - Alerts you about out...
Little Snitch gives you control over your private outgoing data. Track background activity As soon as your computer connects to the Internet, applications often have permission to send any... Read more
MPlayer OSX Extended 16 - Multimedia pla...
MPlayer OSX Extended is the future of MPlayer OSX. Leveraging the power of the MPlayer and FFmpeg open source projects, MPlayer OSX Extended aims to deliver a powerful, functional and no frills video... Read more
Google Chrome 75.0.3770.142 - Modern and...
Google Chrome is a Web browser by Google, created to be a modern platform for Web pages and applications. It utilizes very fast loading of Web pages and has a V8 engine, which is a custom built... Read more

Latest Forum Discussions

See All

TEPPEN guide - Tips and tricks for new p...
TEPPEN is a wild game that nobody asked for, but I’m sure glad it exists. Who would’ve thought that a CCG featuring Capcom characters could be so cool and weird? In case you’re not completely sure what TEPPEN is, make sure to check out our review... | Read more »
Dr. Mario World guide - Other games that...
We now live in a post-Dr. Mario World world, and I gotta say, things don’t feel too different. Nintendo continues to squirt out bad games on phones, causing all but the most stalwart fans of mobile games to question why they even bother... | Read more »
Strategy RPG Brown Dust introduces its b...
Epic turn-based RPG Brown Dust is set to turn 500 days old next week, and to celebrate, Neowiz has just unveiled its biggest and most exciting update yet, offering a host of new rewards, increased gacha rates, and a brand new feature that will... | Read more »
Dr. Mario World is yet another disappoin...
As soon as I booted up Dr. Mario World, I knew I wasn’t going to have fun with it. Nintendo’s record on phones thus far has been pretty spotty, with things trending downward as of late. [Read more] | Read more »
Retro Space Shooter P.3 is now available...
Shoot-em-ups tend to be a dime a dozen on the App Store, but every so often you come across one gem that aims to shake up the genre in a unique way. Developer Devjgame’s P.3 is the latest game seeking to do so this, working as a love letter to the... | Read more »
Void Tyrant guide - Guildins guide
I’ve still been putting a lot of time into Void Tyrant since it officially released last week, and it’s surprising how much stuff there is to uncover in such a simple-looking game. Just toray, I finished spending my Guildins on all available... | Read more »
Tactical RPG Brown Dust celebrates the s...
Neowiz is set to celebrate the summer by launching a 2-month long festival in its smash-hit RPG Brown Dust. The event kicks off today, and it’s divided into 4 parts, each of which will last two weeks. Brown Dust is all about collecting, upgrading,... | Read more »
Flappy Royale is an incredibly clever ta...
I spent the better part of my weekend playing Flappy Royale. I didn’t necessarily want to. I just felt like I had to. It’s a hypnotic experience that’s way too easy to just keep playing. | Read more »
Void Tyrant guide - General tips and tri...
Void Tyrant is a card-based dungeon-crawler that doesn’t fit in the mold of other games in the genre. Between the Blackjack-style combat and strange gear system alone, you’re left to your own devices to figure out how best to use everything to your... | Read more »
Webzen’s latest RPG First Hero is offici...
You might be busy sending your hulking Dark Knight into the midst of battle in Webzen’s other recent release: the long-anticipated MU Origin 2. But for something a little different, the South Korean publisher has launched First Hero. Released today... | Read more »

Price Scanner via MacPrices.net

Amazon drops prices, now offers clearance 13″...
Amazon has new dropped prices on clearance 13″ 2.3GHz Dual-Core non-Touch Bar MacBook Pros by $200 off Apple’s original MSRP, with prices now available starting at $1099. Shipping is free. Be sure to... Read more
2018 15″ MacBook Pros now on sale for $500 of...
Amazon has dropped prices on select clearance 2018 15″ 6-Core MacBook Pros to $500 off Apple’s original MSRP. Prices now start at $1899 shipped: – 2018 15″ 2.2GHz Touch Bar MacBook Pro Silver: $1899.... Read more
Price drop! Clearance 12″ 1.2GHz Silver MacBo...
Amazon has dropped their price on the recently-discontinued 12″ 1.2GHz Silver MacBook to $849.99 shipped. That’s $450 off Apple’s original MSRP for this model, and it’s the cheapest price available... Read more
Apple’s 21″ 3.0GHz 4K iMac drops to only $936...
Abt Electronics has dropped their price on clearance, previous-generation 21″ 3.0GHz 4K iMacs to only $936 shipped. That’s $363 off Apple’s original MSRP, and it’s the cheapest price we’ve seen so... Read more
Amazon’s Prime Day savings on Apple 11″ iPad...
Amazon has new 2018 Apple 11″ iPad Pros in stock today and on sale for up to $250 off Apple’s MSRP as part of their Prime Day sale (but Prime membership is NOT required for these savings). These are... Read more
Prime Day Apple iPhone deal: $100 off all iPh...
Boost Mobile is offering Apple’s new 2018 iPhone Xr, iPhone Xs, and Xs Max for $100 off MSRP. Their discount reduces the cost of an Xs to $899 for the 64GB models and $999 for the 64GB Xs Max. Price... Read more
Clearance 13″ 2.3GHz Dual-Core MacBook Pros a...
Focus Camera has clearance 2017 13″ 2.3GHz/128GB non-Touch Bar Dual-Core MacBook Pros on sale for $169 off Apple’s original MSRP. Shipping is free. Focus charges sales tax for NY & NJ residents... Read more
Amazon Prime Day deal: 9.7″ Apple iPads for $...
Amazon is offering new 9.7″ WiFi iPads with Apple Pencil support for $80-$100 off MSRP as part of their Prime Day sale, starting at only $249. These are the same iPads found in Apple’s retail and... Read more
Amazon Prime Day deal: 10% (up to $20) off Ap...
Amazon is offering discounts on new 2019 Apple AirPods ranging up to $20 (10%) off MSRP as part of their Prime Day sales. Shipping is free: – AirPods with Charging Case: $144.99 $15 off MSRP –... Read more
Amazon Prime Day deal: $50-$80 off Apple Watc...
Amazon has Apple Watch Series 4 and Series 3 models on sale for $50-$80 off Apple’s MSRP as part of their Prime Day deals with prices starting at only $199. Choose Amazon as the seller rather than a... Read more

Jobs Board

*Apple* Systems Architect/Engineer, Vice Pre...
…its vision to be the world's most trusted financial group. **Summary:** Apple Systems Architect/Engineer with strong knowledge of products and services related to Read more
*Apple* Graders/Inspectors (Seasonal/Hourly/...
…requirements. #COVAentryleveljobs ## Minimum Qualifications Some knowledge of agricultural and/or the apple industry is helpful as well as the ability to comprehend, Read more
Best Buy *Apple* Computing Master - Best Bu...
**710003BR** **Job Title:** Best Buy Apple Computing Master **Job Category:** Store Associates **Location Number:** 000171-Winchester Road-Store **Job Description:** Read more
Best Buy *Apple* Computing Master - Best Bu...
**709786BR** **Job Title:** Best Buy Apple Computing Master **Job Category:** Sales **Location Number:** 000430-Orange Park-Store **Job Description:** **What does a Read more
Geek Squad *Apple* Master Consultation Agen...
**709918BR** **Job Title:** Geek Squad Apple Master Consultation Agent **Job Category:** Services/Installation/Repair **Location Number:** 000106-Palmdale-Store Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.