TweetFollow Us on Twitter

Aug 93 Think 10
Volume Number:9
Issue Number:8
Column Tag:Think Top 10

Think Top 10

By Scott Shurr, THINK Technical Support, Symantec Corp.

This is the first installment of a monthly column written by Symantec's Technical Support Engineers intended to provide you with ingormation on Symantec products. This month we answer some of the most frequently asked questions about THINK C 6.0 and Symantec C++ for Macintosh.

Q. How closely does Symantec C++ conform to the language described in The Annotated C++ Reference Manual (ARM) by Margaret A. Ellis and Bjarne Stroustrup?

A. Symantec C++ is AT&T CFront 3.0 compliant, and conforms to the ARM in all respects except for exception handling, which has not yet been implemented.

Q. Will libraries built with THINK C 5.0 work under Symantec C++?

A. The libraries themselves will, for the most part, work as expected. There are a couple of points to keep in mind though. The C++ compiler uses 4-byte integers and native floating point format, so if your library uses variables declared int (which are 2-bytes in THINK C but 4-bytes in Symantec C++) or floating point (float, double, long double, extended) then you should rebuild it with THINK C 6.0 using these settings or port it to C++. The other thing to keep in mind is that C and C++ use different calling conventions, so you will need to modify your header files to contain a C linkage specification for the prototypes. A typical sequence is:

 #if __cplusplus
 extern "C" {
 #endif
 //  
 // Your prototypes go here
 //  
 #if __cplusplus
 }
 #endif

Take a look at one of the standard library header files if you want to see this mechanism in action.

Q. How do you convert THINK Class Library projects from 5.x to 6.0? To C++?

A. The safest way to do the conversion is to start with the 6.0 Starter application: the TCL 1.1.3 sources all have the file extension .cp (with the exception of a handfull with .asm), so you can’t just bring your existing 5.0 TCL project over and expect it to build. By using the Starter app you get the right extension mappings and options at no cost (other than adding and segmenting your sources). For a THINK C based TCL project, you should have .c, .asm, and .cp all mapped to the THINK C translator. If you want to build your existing TCL application using C++, then you can add the files to the C++ based Starter app, and change the extension mapping for .c from THINK C to Symantec C++. This is very imporatant: the object model used in the THINK C object extensions are not compatible with C++, and you will get many link errors if you forget to change the mapping.

Q. The THINK C User’s Guide says that if I option double-click on the name of a Toolbox or standard library function, then THINK reference will open up and show me the documentation for that function. But it isn’t working all the time, why?

A. If THINK Reference isn’t running on your machine, then option double-clicking will not launch it: you need to chose "Find in THINK Reference" from the Search menu, or press -minus ('-'). Once you have launched it then you will be able to use option double-click to perform lookups.

Q. What is "Internal Error ZREF," and what can I do about it?

A. It means that your project file is corrupted. Removing objects from the project and rebuilding may fix it, providing the corruption was in the object portion of the project. If it wasn’t, you need to create a new project and add the sources into it. If your project file grows towards 16 megabytes, you may also see this error. Try storing your debug info separately: this will cut down on the project size. Unfortunately this still means you will need to rebuild the project from scratch. If you have AppleScript then you can use the "Save project as text" and "Create project as text" AppleScripts (in the ':Scripting:Sample AppleScripts' folder) to automate this task.

Q. When compiling a C++ source file, a syntax error in my .h file is reported in the errors window. When I double-click to open the .h file, I don’t see anything that looks wrong, so I do Check Syntax. Now I don’t get any errors. But when I go back to the original file and try compiling again, I get the same error.

A. You can’t do Check Syntax on files that do not have a translator mapping, and .h files are not part of the default set of mappings. If you set the THINK Project Manager’s extension mapping to map .h to THINK C or Symantec C++, you will be able to directly check such a file, and see the errors. (Note that compiling this a .h file will add it to the project!) Another solution, which doesn’t require changing the extension mappings, is to preprocess the file, saving the resulting file with a .c or .cp extension (which is appropriate) and compiling it.

Q. Can I include my "projectname.rsrc" file in my project?

A. You can, but you may cause a “duplicate resource” error. The default extension mapping for .rsrc files specifies that the Resource Copier as the translator. Since the Resource Copier copies its input into the “projectname.rsrc” file (creating it if necessary), you will get that error. You can prevent this from happening by naming the file something other than “projectname.rsrc”. If you have multiple .rsrc files in the project, the contents of each will be copied into “projectname.rsrc”. You could also set the .rsrc translator to «none», but that would defeat the advantages of having the project automatically keep track of the resources.

Q. I’m building a TCL project in THINK C 6.0 that I know will need far code and far data, so I take the starter project, replace oopsDebug with oopsDebugFar, set Far Data and Far Code, and select Bring Up To Date. I get the following compile error:

File <LongQD.cp>; Line 28
Error:     second argument to function ‘__member’ does not match prototype

A. The member() function is declared in oops.h, which gets included in the precompiled header, TCLHeaders. Its second argument gets declared as a void * if either far code or far data are on, but as a short if not. Hence the prototype mismatch. The manual, by mentioning that you must include oops.h in all far TCL projects, is subtly whispering that perhaps you should recompile TCLHeaders with far options on.

Q. I’m trying to use the lowercase, C style newcdialog() function, which is declared in Dialogs.h - but the linker tells me it’s undefined. I have MacTraps and MacTraps2 in my project. What’s the problem?

A. The declarations for these functions are in there because we use the headers supplied by Apple. However, these functions are implemented via glue that only works in MPW. We have never, and probably will never, support them.

Q. I have a strange problem with THINK C. It beeps at the end of compilation, without displaying any message or alert. The beep occurs only when I compile all files of the project together, not when I compile a single file. This is very disturbing. What can I do to recover normal behavior?

A. It’s a feature! If you’re compiling a lot of files, the beep occurs so you will know to end your coffee break and get back to work.

 
AAPL
$565.89
Apple Inc.
+41.14
MSFT
$39.36
Microsoft Corpora
-0.33
GOOG
$524.16
Google Inc.
-2.78

MacTech Search:
Community Search:

Software Updates via MacUpdate

TechTool Pro 7.0.3 - Hard drive and syst...
TechTool Pro is now 7, and this is the most advanced version of the acclaimed Macintosh troubleshooting utility created in its 20-year history. Micromat has redeveloped TechTool Pro 7 to be fully 64... Read more
MacFamilyTree 7.1.6 - Create and explore...
MacFamilyTree gives genealogy a facelift: it's modern, interactive, incredibly fast, and easy to use. We're convinced that generations of chroniclers would have loved to trade in their genealogy... Read more
EtreCheck 1.9.9 - For troubleshooting yo...
EtreCheck is a simple little app to display the important details of your system configuration and allow you to copy that information to the Clipboard. It is meant to be used with Apple Support... Read more
TeamViewer 9.0.28116 - 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... Read more
Viber 4.1.0 - Send messages and make cal...
Viber lets you send free messages and make free calls to other Viber users, on any device and network, in any country! Viber syncs your contacts, messages and call history with your mobile device,... Read more
Apple iOS 7.1.1 - The latest version of...
The latest version of iOS can be downloaded through iTunes. Apple iOS 7 brings an all-new design and all-new features. Simplicity Simplicity is often equated with minimalism. Yet true simplicity is... Read more
1Password 4.3 - Powerful password manage...
1Password is a password manager that uniquely brings you both security and convenience. It is the only program that provides anti-phishing protection and goes beyond password management by adding Web... Read more
Lens Blur 1.3.0 - True out-of-focus boke...
Let Lens Blur transform your existing photo into true SLR-quality out-of-focus bokeh effect! Everyone needs a gorgeous personalized background for a social profile, blog, Web/UI design, presentation... Read more
VMware Fusion 6.0.3 - Run Windows apps a...
VMware Fusion allows you to create a Virtual Machine on your Mac and run Windows (including Windows 8.1) and Windows software on your Mac. Run your favorite Windows applications alongside Mac... Read more
BitTorrent Sync 1.3.93 - Sync files secu...
BitTorrent Sync allows you to sync unlimited files between your own devices, or share a folder with friends and family to automatically sync anything. File transfers are encrypted. Your information... Read more

Latest Forum Discussions

See All

The Sandbox Gets Update, Receives New Ca...
The Sandbox Gets Update, Receives New Campaign and New Elements Posted by Tre Lawrence on April 24th, 2014 [ permalink ] Universal App - Designed for iPhone and iPad | Read more »
Football Management Simulator One For El...
Football Management Simulator One For Eleven Released Worldwide Today for iOS Posted by Simon Reed on April 24th, 2014 [ permalink ] Free-To-Play football management title One For E | Read more »
Leo’s Fortune Review
Leo’s Fortune Review By Jordan Minor on April 24th, 2014 Our Rating: :: FORTUNATE SONUniversal App - Designed for iPhone and iPad Leo’s Fortune delivers a platforming experience as creative and refined as any console game.   | Read more »
Suited Up (Games)
Suited Up 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: Suited Up is a difficult, one-touch platformer that requires players to visualize each jump. The controls in Suited Up are simple,... | Read more »
MyTP One Mountain - Ski, Freeski and Sno...
MyTP One Mountain - Ski, Freeski and Snowboard 1.0.0 Device: iOS Universal Category: Games Price: $.99, Version: 1.0.0 (iTunes) Description: As real snow is melting away in the snow parks around the northern hemisphere, it's now time... | Read more »
Tank Battle: East Front 1943 (Games)
Tank Battle: East Front 1943 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: Tank Battle: East Front 1943 is the third in the successful ‘Tank Battle: East Front’ series of games for iPhone... | Read more »
Third Eye Crime: Act 1 (Games)
Third Eye Crime: Act 1 1.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: "You have to see Third Eye Crime" Touch Arcade "Third Eye Crime is unlike anything currently available for mobile... | Read more »
Wayward Souls (Games)
Wayward Souls 1.00 Device: iOS Universal Category: Games Price: $4.99, Version: 1.00 (iTunes) Description: **Buy the game now at an introductory sale price of $4.99 USD. Every time we do a big content update, we will raise the price... | Read more »
Leo's Fortune (Games)
Leo's Fortune 1.0.2 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0.2 (iTunes) Description: Leo’s Fortune is a platform adventure game where you hunt down the cunning and mysterious thief that stole your gold.... | Read more »
iOOTP Baseball 2014 Edition Review
iOOTP Baseball 2014 Edition Review By Carter Dotson on April 23rd, 2014 Our Rating: :: SOLID CONTRACTUniversal App - Designed for iPhone and iPad The long-running baseball simulator returns to mobile with a much-improved entry in... | Read more »

Price Scanner via MacPrices.net

16GB 1st generation iPad mini available for $...
Radio Shack has a select number of refurbished 1st generation 16GB WiFi iPad minis available for $199.99 on their online store. Choose free shipping or free ship-to-store. We expect these to sell out... Read more
13-inch 2.5GHz MacBook Pro on sale for $100 o...
B&H Photo has the 13″ 2.5GHz MacBook Pro on sale for $1099 including free shipping plus NY sales tax only. Their price is $100 off MSRP. Read more
iPad Sales “Lull” A Reality Correction Of Unm...
I have lots of time for Jean-Louis Gassée, the former Apple Computer executive (1981 to 1990) who succeeded Steve Jobs as head of Macintosh development when the latter was dismissed in 1985. Mr.... Read more
Apple Makes OS X Betas Available To All – Wit...
Apple’s OS X Beta Seed Program, which lets you install the latest pre-release builds, try it out, and submit your feedback, is now open to anyone who wants to sign on rather than to developers and... Read more
Apple Releases iOS 7.1.1 Update
The latest iOS 7.1.1 update contains improvements, bug fixes and security updates, including: • Further improvements to Touch ID fingerprint recognition • Fixes a bug that could impact keyboard... Read more
Logitech Announces Thinner, Lighter, More Fle...
Logitech has announced an update to its Ultrathin for iPad Air, iPad mini and iPad mini with Retina display, improving the flexibility and design of its award-winning predecessor with an even thinner... Read more
Logitech Introduces Hinge, Big Bang and Turna...
Logitech has announced expansion of its tablet product line with three new cases – the Logitech Hinge, the Logitech Big Bang and the Logitech Turnaround – each for the iPad Air, iPad mini and iPad... Read more
WaterField’s Rough Rider Leather Messenger Ba...
WaterField Designs have announced the new 15-inch size of their popular Rough Rider leather messenger bag, a vintage-looking bag that combines Old West charm and ruggedness with distinctly modern... Read more
New Mac Pro on sale, save $100 on the 4-Core...
J&R has the new 4-Core Mac Pro in stock today and on sale for $2899 including free shipping plus NY sales tax only. Their price is $100 off MSRP, and it’s the lowest price available for this... Read more
Apple refurbished iMacs available for up to $...
The Apple Store has Apple Certified Refurbished 2013 iMacs available for up to $300 off the cost of new models. Apple’s one-year warranty is standard, and shipping is free. - 27″ 3.4GHz iMac – $1699... Read more

Jobs Board

*Apple* Solutions Consultant (ASC) - Apple (...
**Job Summary** The ASC is an Apple employee who serves as an Apple brand ambassador and influencer in a Reseller's store. The ASC's role is to grow Apple Read more
Position Opening at *Apple* - Apple (United...
…customers purchase our products, you're the one who helps them get more out of their new Apple technology. Your day in the Apple Store is filled with a range of Read more
*Apple* Solutions Consultant (ASC) - Apple (...
**Job Summary** The ASC is an Apple employee who serves as an Apple brand ambassador and influencer in a Reseller's store. The ASC's role is to grow Apple Read more
*Apple* Inc. Research Data Specialist - Appl...
…of Worldwide Market Research & Intelligence. The team is responsible for conducting Apple branded consumer market research. It is also responsible for analyzing data Read more
*Apple* Automotive Parts Department position...
Apple Automotive is one of the fastest growing dealer…and it shows. Consider making the switch to the Apple Automotive Group today! At Apple Automotive, we Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.