Apple Win32 to OS X Porting Guide
BoomerSooner writes "Apple has released a Win32 to Mac OS X Porting Guide for C/C++ developers.
This Guide is to get you started porting an existing procedural Win32 application written in C or C++ to Mac OS X.
It looks like Apple is getting a bit more aggressive toward Microsoft."
Why yes there is....
i n/ GettingStarted/PortingUNIX/
http://developer.apple.com/techpubs/macosx/Darw
NO, the API is not cross platform. MFC/Win32 on Windows, Carbon/Cocoa/Toolbox on the Mac. API code you write for one is not compatible with the other
Just so you know, before you go out downloading CW from hotline.
Wow that's a pretty short guide. I think it came be summarized as:
"Welcome to OSX, based on unix, which means you get protected memory, threads and other stuff. This is new to Macs, which is why we're even bothering to mention it.
Their are a poop-load of different ways to develop for the Mac; Cocoa, Carbon, Java, Classic and even old school bsd/posix, but since Carbon is the only one that resembles Win32 we will talk about that one.
I'm going to mention that Win32 message are a lot like the old school messages, doesn't this make it easy?, oh and we have some type of form/resource editor n' stuff.
Now to read more here are some other articles you'll absolutely need to read before you can anything... you know what.. Why don't you just come to the developer conference: Worldwide Developers Conference sessions on Mac OS X (available for purchase)
-Jon
this is my sig.
Sorry to repost this but it gets tiresome to see the same misinformation out there. read on.
/Applications/Utilities. Drag the terminal.app to the Dock
/Users
/etc/fstab file. It does not matter where you put it since the mac will ignore it. To mount the disks type "sudo niload fstab" followed by the file path name. However, don't do this right away till you have more experience. Instead do the following. /hostpath is the exported fs. The disk will be mounted in /Volumes and be "aliased" to the desktop.
/usr/bin/Netscape & /Applications/Netscape
Dear Unix user, welcome to mac. If you trust me you will just do all of the following without asking why, before you start whining about features you miss. The following is a no-fat-added list of essential customization for unix users converting to the mac world.
1. The Mouse.
Go buy a 3 button USB mouse. Make sure you get an optical mouse with a wheel. Buy the most expensive one you can. Heriditary mac users prefer a 1 button mouse, but you wont.
2. The Terminal.
Open
3. File system journaling
Open the terminal.app and type
sudo diskutil enableJournal
Just do it. This can be undone and you can change how you want it later.
4. The Compiler
Regardless of what compiler you prefer, you need the native compiler and libs. Go to
http://developer.lanl.gov and register for free. Enter the site and select the downloads option. Scroll through the list till you find "developer tools", download and install it.
5. Installing GNU ports part 1.
Goto http://sourceforge.com and find the latest stable release of "fink" for mac os X. download and install it. There will be some questions to answer, just choose the defaults except if offered, ask it to get updates from CVS.
6. Install X-windows part 1
If you have 5 hours to you can wait, type in the terminal
fink install xfree86-rootless
this is preferred as it gets the latest release of a fast changing package.
If you are in a hurry you can install the binary.
Type
sudo dselect
Quick intro to dselect: after some preliminaries you are offered the chance to choose packages from a list. Use the down-arrow key to move down and find xfree86-rootless.
Press the + key to select it. You will be offered "conflict resolution": accept the defaults by pressing return. Then return again to exit the selection. DO NOT GET GREEDY and select other packages yet. Finish the installation.
7. Installing X-windows part 2: the window manager
You may prefer fvwm2 or some other window manager but take my advice and try out oroborus first. Oroborus does things the mac way, and later you will be glad you did even if its not familiar at first. Oroborus deliberately eschews many popular features, letting the OS provide those services. For example, if you want virtual screens you DO NOT want them as part of the windows manager! You want them as part of Aqua so that they apply to both aqua and to x-windows. Likewise you want the Dock to manage minimizing windows not the window manager.
Go to http://apple.com click the OSX tab, then the downloads tab and find oroborus.
Note: the oroborus that comes with Fink/dselect is not quite the same thing.
8. Installing GNU ports part 2.
Use dselect or fink to install a few packages. Fink has about 2000 packages available including your favorite parts of kde and gnome. To see what's avalaible type
fink list | more
just for practice try installing gv (ghost view) and xemacs.
Remember, dselect will install binaries (fast), and fink will install source (slow), generally dselect is a good idea. Once a month type "fink update-all" or update packages in dselect.
9. Text editor
Goto http://www.barebones.com and get a free copy of bbedit "lite". I recommend buying the full version, especially to geeks. Note that you can save files in unix/mac/PC formats which have different end of line characters. Despite the name, on a mac you should normally use unix format. Mac mode is mainly for historic reasons but gums up unix commands. Even if this (amazingly) does not turn out to be your preferred editor, you should install it anyhow so that it is there for guests.
10. Mounting network disks
You can mount NFS disks by creating a file that looks just like the usual
In the finder window, select go>servers. In the text field type
nfs://xxx.xxx.xxx.xxx/hostpath
Where xxx.xxx.xxx.xxx is the ip address or domain name of the host with the disk, and
To mount windows network disks we use
smb://xxx.xxx.xxx.xxx/path
Be nice and unmount your disks (throw them in the trash) before disconnecting from the net.
11. using X windows across the network.
All the usual stuff (like xhosts and DISPLAY) works as expected. However you do need to activate oroborus (which will fire up X-windows) since its not on by default. However, before you do this let me suggest an alternative you may find better. Goto http://apple.com and on the osx downloads page locate VNCdimension (or VNCthing) and install this application. On the X windows client, run vncserver. And on the mac attatch to it using VNC dimension. On anything but the fastest network connection you will find this smoother and faster than using x-windows. Plus its more secure and even runs through firewalls. At present much of X-windows on the mac is not graphics accelerated, but VNC dimension which runs in aqua is.
12. Shortcuts worth knowing about
On your unix machine to run netscape you type
on a mac you type
open
to open the file browser at the current working directory type
open . (note the period)
to open a web page type
open http://macosxhints.com
13. Pitfalls
There are few pitfalls in the file system you need to know about early on.
First be careful with cp,mv,rsync, and tar. For 99.9% of the time they work as expected. But a lot of mac applications and mac documents store info in something called the "resource fork" of a file. Unix files only have a single data fork. Mac files have a data and a resource fork. The data fork is the same as what you would see on the unix system. The resource fork can contain almost anything, but usually contains unimportant meta-information about the file itself like what app created it, and so on. But sometimes it contains crucial information (e.g quicken).
When you do a unix cp or mv or tar all you get are the data forks. The rule of thumb is this: if your file can be used by a unix program then dont worry about the resource fork. Most modern mac apps do not use the resource fork but older ones do.
Second, mac filenames are case-insensitive but case preserving. Thus ReadME and readme are the same file.
Third, unfortunately, for backwards compatibility there are two different kinds of soft links on a mac. One is the usual unix soft link and the other is the "alias" function of the OS. The OS is smart enough to recognize the unix links and treat them as file aliases in the GUI. But the reverse is not true. Generally you are better off using the unix soft links.
Fourth, macs have three layers of file permissions where unix has one. Macs have the usual unix permissions. Plus there is an ability to lock a file against changes or deletion, and finally there is the ability to lock a file against modification even by root. generally you wont ever need either of the latter two, but you may someday find a file you cant seem to delete! just in case, the normal file lock is accessed via "get info"
Fifth, fstab, exports, shadowpassword, passwd, and most unix configs don't work the way you expect. Use the admin tools to alter netinfo configuration data. (see root below)
14. Thinking mac-like.
First off you never need to touch the other mouse buttons outside of x-windows. Second, try to adopt apple applications where they exist to replace you current favorites. For example, use the mail.app instead of pine or Eudora. Sure these have nice features, but long term apple apps will stay more tightly integrated: for example, mail.app links to addressbook which links to iCal. Third, Chill-out dude. Macs force you to do things a certain ways with warning dialog boxes or focus-on-click windows. These are not worse than other ways, and long term you will come to see the benefits from the cross-application uniformity of operations. Unmount disks, especially network disks, by tossing them in the trash. (you may want to add an eject button to the finder menu)
15. Viruses, Worms, holes, etc...
Regularly use the software update feature. Bugs get patched quickly. Historically, the only security holes you must stay on top of are Microsoft Internet Explorer holes, Microsoft Entourage/outlook holes, and Microsoft macro viruses. Don't bother worrying about anything else till you worry about these. Many people use Chimera for this reason.
16. Root
If you read just one book try "mac OS X for unix geeks", most other books aren't for you because they are trying to explain unix to mac-heads. Avoid using root when you can use an admin tool or sudo instead. Apple has not fully document root admin, so stick with tools. Except don't ever play with netinfo manager or niload until you have a lot of experience, as there is no faster way to make your mac unbootable.
17. Goodies
There are virtual window managers at mac OSX downloads.
Try out Watson at http://www.karelia.com/watson/
Microsoft office X is a great program even if it is made by Microsoft.
Scientific plotting: You may like Igor from wavemetrics.com since it has both command line and menu driven interface. Fink comes with R, Octave and Gnu-plot. Mathematicians may prefer mathematica.
If you have a powerbook, put the dock on the left and make it small.
Turn off autostart on OS 9.0
Discover iTunes.
Consider a mac.com account
Read http://macosxhints.com
Some drink at the fountain of knowledge. Others just gargle.
uh, apple has like 4% of NEW SALES.. since Macs tend to last for many years (I bought a mac in 1996, then another in 2000, I'm still using that one) the actual number of Macs is larger.
This isn't as bad as you think. I've worked with MFC, ATL, WTL, and Borland's VCL in both Pascal and C++, and I'm finding Cocoa to be elegant in comparison. Admittedly the []; syntax gives me fits at times, but the overall depth and breadth of the Cocoa environment is a nice thing.
Funny, but the thing I miss the most about Windows? code completion. the silly little popups for function params are a huge timesaver, and Project Builder doesn't sport them yet.
All you need to know is wxWindows. The wxWindows library is quite similar in terms of design and functionality to Win32, and once you have ported to it, you can compile your application for Win32, Linux/X11, OS X, and several other platforms.
"Mac OS X Unleashed" by John Ray and William C Ray has a lot of good stuff on NetInfo - clustering, NFS mounts, user management, etc.
Look, it's trying to think - Albert Rosenfield
And the fact that Macintosh is built around that model is going to hurt it badly.
How on earth is the Mac "built around that model"? That makes no sense at all considering Apple gives away their high-quality IDE and actively supports open source. Perhaps you mean that Mac developers haven't traditionally been involved in open source; this is true but rapidly changing.
My parents were asking me: why can't we just run all those Linux games? Well, sorry, they don't run on OS X.
They probably would if you installed Fink. There are dozens of Gnome and KDE games available as Fink packages, and others can be built easily.
And even after you track stuff down, installing it on OS X is confusing for the average user: drag this here, drag that there, click here to let me do this, click there to let me do that, etc.
Once again I have no idea what you're talking about. To install: drag app to "Applications" folder. To uninstall: drag app to trash.
Microsoft has lots of influence on Apple, and Apple won't be able to get out of DRM
I see no evidence for either of these assertions.
How to solve most of our problems: 1.Lots of nuclear plants. 2.Cure aging.