Thread View: comp.windows.misc
6 messages
6 total messages
Started by Dave Kumpf
Thu, 15 Sep 1988 19:04
Questions Re MS-Windows Dev Cost
Author: Dave Kumpf
Date: Thu, 15 Sep 1988 19:04
Date: Thu, 15 Sep 1988 19:04
23 lines
1477 bytes
1477 bytes
I have some (maybe stupid) questions regarding MS-windows development. I'd like to play around with the MS-Windows environment, but the cost seems ridiculous. (mail order -- $300 for MS-C, $350 for Windows SDK, $75 to upgrade my Windows from 1.03 to 2.01 ...) (alright, maybe it's not ridiculous, just more than I want to spend) 1) Why is MS-C required? It seems to me (not knowing enough about C) that if you have a linker that understands the Windows LIB and if your compiler supports PASCAL calling sequences, you should be able to use that C compiler. (Or does Windows depend on what the compiler does with registers?) 2) Does anyone have a Windows environment clone (public domain/shareware or outright purchase) that is reasonably priced? Is anyone working on such a clone? Borland!!? (Or are they really endorsing Open Look?) 3) If MS products are really the only alternative -- are there academic/student versions that are cheaper? Please email to me. Thanks for your help. Dave Kumpf hplabs!hp-lsd!davek
Re: Questions Re MS-Windows Dev Cost
Author: Marc Guyott
Date: Thu, 22 Sep 1988 15:59
Date: Thu, 22 Sep 1988 15:59
53 lines
2596 bytes
2596 bytes
In article <8520002@hp-lsd.HP.COM> davek@hp-lsd.HP.COM (Dave Kumpf) writes:
>I have some (maybe stupid) questions regarding MS-windows development.
>I'd like to play around with the MS-Windows environment, but the cost seems
>ridiculous. (mail order -- $300 for MS-C, $350 for Windows SDK, $75 to
>upgrade my Windows from 1.03 to 2.01 ...)
>
Wait and purchase the 2.1 SDK. This SDK comes with a version of CodeView
that will work with Windows. I am a registered owner of a 2.01 SDK and I
recieved my official upgrade notice from Microsoft on the 9th of September.
If you acquired your 2.03 SDK before June 1, 1988 there is a $30.00 upgrade
fee. I have called Microsoft and I am told it is possible to upgrade the
1.03 SDK to 2.1 for $100.00.
>
>1) Why is MS-C required?
>
Probably to supply the CodeView support for debugging.
>It seems to me (not knowing enough about C) that
>if you have a linker that understands the Windows LIB and if your compiler
>supports PASCAL calling sequences, you should be able to use that C
>compiler. (Or does Windows depend on what the compiler does with registers?)
>
I would be curious to know what the answer to this question is.
>
>2) Does anyone have a Windows environment clone (public domain/shareware
>or outright purchase) that is reasonably priced? Is anyone working on such
>a clone? Borland!!? (Or are they really endorsing Open Look?)
>
I have heard that there is a product available called "Actor" that is supposed
to make Windows development easier. I have never used or seen it but a few of
my friends use it and they swear by it.
>
>3) If MS products are really the only alternative -- are there
>academic/student versions that are cheaper?
>
Check out "Actor".
Marc
----
... I never saw the morning until I stayed up all night ...
Tom Waits
Marc Guyott mguyott@mirror.TMC.COM
{mit-eddie, pyramid, harvard!wjh12, xait, datacube}!mirror!mguyott
Mirror Systems Cambridge, MA 02140 617/661-0777
Re: Questions Re MS-Windows Dev Cost
Author: mcdonald
Date: Fri, 23 Sep 1988 14:39
Date: Fri, 23 Sep 1988 14:39
32 lines
2029 bytes
2029 bytes
>>It seems to me (not knowing enough about C) that >>if you have a linker that understands the Windows LIB and if your compiler >>supports PASCAL calling sequences, you should be able to use that C >>compiler. (Or does Windows depend on what the compiler does with registers?) >> >I would be curious to know what the answer to this question is. The answer is that you absolutely must use Microsoft C and have the Windows SDK to do C programming. In the first place, there is a special "linker" called "link4" which reads not only object files but something called a .def file which tells it whether segments are fixed, moveable, discardable, etc., and informs it which C functions are directly called by Windows. Those that are must use a special calling sequence such that they can't be called directly from your C code (if you, for example, ask for a code pointer you get an entry point inside Windows itself; if you call that point Windows will figure out where the routine really is and call it). I have now done a lot of Windows programming and find that, after 8 months, it gets relatively straightforward. Output is not bad at all, input is messy and a nuisance, while memory management is an unholy terror and a good reason to forget about the whole thing. Once again, before you even consider buying the Windows SDK, read the book "Programming Windows" by Charles Petzold. $24.95 at any Waldenbooks or B. Dalton (at least in this town they all carry them). Doug McDonald
Re: Questions Re MS-Windows Dev Cost
Author: greg yachuk
Date: Fri, 23 Sep 1988 17:56
Date: Fri, 23 Sep 1988 17:56
38 lines
2018 bytes
2018 bytes
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
Re: Questions Re MS-Windows Dev Cost
Author: Bill Turner
Date: Fri, 23 Sep 1988 18:03
Date: Fri, 23 Sep 1988 18:03
19 lines
1403 bytes
1403 bytes
> 1) Why is MS-C required? It seems to me (not knowing enough about C) that > if you have a linker that understands the Windows LIB and if your compiler > supports PASCAL calling sequences, you should be able to use that C > compiler. (Or does Windows depend on what the compiler does with registers?) MS Windows requires that certain prolog/epilog code be attached to FAR procedures (no, not PROLOG; maybe prefix would be a better term?). This code does some rather intersting setup for moveable/discardable code and moveable/multiple data segments. Microsoft does publish what the requirements are, but few compiler manufacturers have bitten yet. I've heard that Lattice C was going to be (or is) compatible with MSW -- anyone know anything? As was mentioned in another response, Actor is available, which is an OOP development system for MSW. Haven't seen much of it other than playing with the first release (slow and big at the time, but easy to develope code). --Bill Turner
Re: Questions Re MS-Windows Dev Cost
Author: Steven Nicolai
Date: Fri, 23 Sep 1988 22:30
Date: Fri, 23 Sep 1988 22:30
51 lines
3040 bytes
3040 bytes
In article <18185@mirror.TMC.COM> mguyott@prism.TMC.COM (Marc Guyott) writes: >In article <8520002@hp-lsd.HP.COM> davek@hp-lsd.HP.COM (Dave Kumpf) writes: >>I have some (maybe stupid) questions regarding MS-windows development. >> >>1) Why is MS-C required? >> > >Probably to supply the CodeView support for debugging. That is one reason. The other reason is that Windows requires different function prolog and epilog code. There are actually three different sets that could be used depending on how the function is called. Petzold talks about these in Chapter 8, Memory Management. Basically there is one convention for near procs called only from C, a different convention for far procs called from C, and a third for far procs called from Windows. (This last type includes window definition functions) The compiler actually emits the same code for that last two, and the LINK4 linker changes the prolog and epilog code. The near function prolog and epilog code is pretty standard. The far function code is kinda neat, they inc bp before pushing in on the stack. This "feature" allows Windows to walk the stack back through the bp chain and find all the functions. They are then able to look at the bp value on the stack, if it is even they know it was a near function call, if it was odd, it was a far function call. Why is this info needed you ask? Windows swaps segments. It can even swap out a segment that has function with a stack frame that is active. The return address to this function becomes invalid when that segment is unloaded. They replace the return address with the address of the "reload" thunk for the function that was called. (And you always wondered why MS-Windows ran sooooo slow....:-) >>It seems to me (not knowing enough about C) that >>if you have a linker that understands the Windows LIB and if your compiler >>supports PASCAL calling sequences, you should be able to use that C >>compiler. (Or does Windows depend on what the compiler does with registers?) >I would be curious to know what the answer to this question is. I think this is answered above. One more comment, Supposedly ZorTech is working on Windows support for their C++ compiler. All that is needed is a switch to turn on this different prolog - epilog code for far functions, and to follow the MS C calling conventions. Neither of these sound too difficult to do. STeve -- Steve Nicolai USMAIL: 1717 40th St SW Apt 106 ARPA & UUCP: nenicola@plains.NoDak Fargo, ND 58103 BITNET: nenicola@ndsuvax (701)-281-1230
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads