Path: utzoo!attcan!uunet!ncrlnk!ncr-sd!hp-sdd!hplabs!pyramid!infmx!greggy From: greggy@infmx.UUCP (greg yachuk) Newsgroups: comp.windows.misc Subject: Re: Questions Re MS-Windows Dev Cost Message-ID: <460@infmx.UUCP> Date: 23 Sep 88 17:56:25 GMT References: <8520002@hp-lsd.HP.COM> Reply-To: greggy@infmx.UUCP (greg yachuk) Organization: Informix, Menlo Park, Ca. U.S.A. Lines: 38 In article <8520002@hp-lsd.HP.COM> davek@hp-lsd.HP.COM (Dave Kumpf) writes: >1) Why is MS-C required? It isn't. You can use C, Pascal or Assembler. There are several caveats: i) Windows uses Pascal calling conventions (e.g. reversing the stacked parameters, called function pops arguments). All calls to Windows and all functions which will be called by Windows must adhere to this convention. ii) All callback functions must be FAR, even if the code is small or compact model. iii) All callback functions require a special Windows prolog and epilog. With MS C, you include it with the -Gw option (at compile time). You can probably determine what the prolog and epilog are from an include file (cmacros.inc) supplied with the SDK. This file is used when developing in Assembler. iv) All Windows functions that use structures used PACKED structures. With MS C, you use the -Zp option. v) You must respect MS C return value conventions. Things which can be represented in 16 bits are returned in AX. Things which require 32 bits are returned in DX:AX. That is, DX has high-order 16 bits, AX has low-order 16 bits. As you can see, you do not NEED MS C, but good luck finding any non-MS language which fill all these criteria. Note: This information was gleaned from Microsoft Windows Software Development Kit Version 2.00 Programming Tools, Chapter 2 "Cl, Pascal and the Macro Assembler" >Dave Kumpf >hplabs!hp-lsd!davek Greg Yachuk Informix Software Inc., Menlo Park, CA (415) 322-4100 {uunet,pyramid}!infmx!greggy why yes, I DID choose that login myself