Fog Creek Software
Discussion Board

Easiest & Cheapest way to write Win9x app?

I'm a graduate student in Optics, and in the course of my research, I've written a custom ray-tracing program. It is a DOS / command-line program, written in ANSI C, using MS Visual C++ 5.0.

I would like to (easily) give it a facelift, if possible. My vision of the ideal programming environment for this harkens back to InterfaceBuilder, on the NeXT: drag-and-drop GUI construction. Quickly made windows; easy stuff done without writing pages of calls to arcane GUI APIs.

So, what is the simplest and cheapest way to craft a Windows app? I'd like to be able to link in my C-code, rather than rewrite it in e.g. VB. I can get Visual Basic, C, or whatever, affordably. (Student pricing for "learning" edition of VB is $50). I see Delphi mentioned, but know nothing about it.

Any recommendations for a weary, stressed Ph.D. candidate, who just wants to spiff up a program for future resume-fodder, is greatly appreciated.


dave f

David Fischer
Wednesday, December 19, 2001

Get yourself a bright undergraduate work-study student.  We used to have loads of 'em in the lab.  They would do antything in exchange for a good recommendation to graduate school or medical school.  Get a CS major, and delegate the task to him/her.

Caveat emptor
Wednesday, December 19, 2001

Take yourself along to Borland and download Delphi personal.  It's a hefty download, but well worth it.

If you would like to keep Deplhi's Drag and Drop GUI creation and great object library, but still use C++ then try C++ builder:

Ged Byrne
Wednesday, December 19, 2001

I would say get C++Builder from Borland if you really want to use C(++). It gives you the ease of Delphi UI creation and the ability to program in your favourite language.

If you're not religious about C++ get The Real Thing: Delphi. Delphi combines Object-Pascal with easy UI creation. Object-Pascal has a lot of the same 'features' Java and C# have, but is build on the easier to read programming language Pascal.

(You can use your C-code, if you first put it in a DLL and call if from Delphi, or maybe as a good example, rewrite your c-code in Delphi (Object-Pascal) and see how much easier to read it becomes ;-)

For both there are 'free' personal editions to download (see previous given URL's) or they can be bought for a small amount (max. US$99)

Hope this helped,


Tjipke A. van der Plaats
Wednesday, December 19, 2001

Depending on whether or not you want to have the '.NET' craze part of your resume, you could grab the Visual Studio.NET demo DVDs from any of a number of magazines on the newsstands, and use C# to do it.  The syntax of C# should be familiar, C# lets you tie into previous COM objects and DLLs created in C++, and you can drag and drop the GUI components.  You can run through a few tutorials to get the gist of it.

Only problem, though, is that the .NET redistributable (about 18MB at the moment) is needed to run your executable.  My guess is that most people will end up having this installed by end of next year though (as we saw with the VB redist files years ago).  If you need the standalone file, the other responses are the ones to follow, probably Delphi.

Wednesday, December 19, 2001 sounds like VB is exactly what you want. Joel writes about it:
I believe he indicated that CityDesk is 95% VB and 5% C++.

Patrick Breitenbach
Wednesday, December 19, 2001

I will recommend Visual C++, but takes time to get used to MFC or STL, so my advice is to try Borland C++ Builder.

Leonardo Herrera
Wednesday, December 19, 2001

Since you already have running code in C, I would do the following, if I were in your position:

1. modify my existing code into a DLL (or possibly an ATL COM object) using MSVC
2. use VB to write an interface that uses the DLL (or object). If you like, you could substitute Delphi for VB easily.

This would represent maximum code reuse, and minimum time and effort.

Jeff Paulsen
Wednesday, December 19, 2001

Thanks for all the suggestions!

- Undergrad slave labor. Had I thought of that a year ago, it would be perfect. But now, the time it would take to get find and get a student up to speed on what I need, etc. would be would take as much time, if not more, than to just do the thing myself.

- VB may well be just what I want. But, oddly, I find MS's description of it rather vague, and unhelpful. And I don't think they have eval versions. Hence, my plea for help. Does VB provide simple drag-n-drop interface construction? MS Studio 5.0 seems to have none of that, requiring high-priest incantations on my C-code. Too much effort for me.

- DLL. That is what I expected to do if I go with VB. That shouldn't be too hard.

- Using C++: I know C, used to know Objective-C, but have only a vague knowledge of C++. I want to learn as little as possible to do this :)

- Re: Borland. My last experience with a non-MS compiler (a Watcom tool) was horrendous. Truly lousy interface. Since then, I've been leery of non-MS programming tools on the PC. But I'm downloading the Borland tools to check them out. Hopefully they are better.

- .Net: I don't care. This is not a mission-critical app. Just a spiffier version of my own tool. :)

Thanks for the suggestions!

David Fischer
Wednesday, December 19, 2001

Hey, Watcom used to rule the universe :-)

About your question: Yes, Visual Basic IDE is GUI driven. You create a form, drop one or two buttons on it, double- click it to add a method, run.

But I think you are going to trouble using VB, because I believe you are not very experienced with Windows. If you want to link DLLs written in MSVC (which is a nightmare by itself), I see bad moon rising (couldn't help, listening to Creedence here).

My advice: find a academic licence to Borland C++ Builder. I wrote an entire app during my first time in windows, without using C++ at all. Port your code to it, don't worry about object oriented programming, don't listen to any purist screaming about not using C++ style. You can use C inside of C++, with minor adjustements (type checking of C++ is more rigid than C).

If you don't want to waste your time, don't try to learn new languages (VB), don't try to learn arcane things (like DLLing with Visual C), and don't do anything fancy. I still believe C++ Builder (BCPPB) is the way to go for you. Delphi would have been nice, but again, it's pascal... if you know pascal well, it's also an option.

Oh, and Borland development tools are far superior to Microsoft's ones, at least from the user friendly point of view.


Leonardo Herrera
Friday, December 21, 2001

[Borland. My last experience with a non-MS compiler (a Watcom tool) was horrendous.]

It seems odd to recommend staying away from a Borland tool because of a bad experience with a Watcom tool.

Borland Delphi is an excellent tool for creating Win32 apps.  It can create apps as "native" as C++ but much faster to develop.  I do greatly miss modern and important features like garbage collection when I use it, though.

Kyle Cordes
Friday, December 21, 2001

Thanks for the helpful replies! :)

I've dl'ed and installed the Delphi Personal Ed. It looks about as easy as these things go, with several demos. I wasn't thrilled to discover it's based on Pascal; I haven't used Pascal in 10 years. But, it wouldn't be any harder than learning VB. So I'll look at it some more.

I didn't mean that Borland would suck since Watcom did. Just my one experience with a non-MS (PC) dev. tool was highly mediocre. And I recall some of Borland's early efforts in the Win9x apps were less than great, interface-ways. But Delphi looks very nice.

I'll check out the Borland C Dev app. Simple is good. :) Ideally, the shoe-maker's elves would visit my office at night and write this for me. Since they won't, I'll take a stab at it myself.

I'm not worried about learning a language if necessary. Programming is programming, regardless of language (ignoring freaky Lisp-like things :)

David Fischer
Saturday, December 22, 2001

>I've dl'ed and installed the Delphi Personal Ed.
>I wasn't thrilled to discover it's based on Pascal

But BASIC is acceptable??

DB Cooper
Saturday, December 22, 2001

"But BASIC is acceptable??"

I was expecting that Delphi was based on C/C++. I was disappointed when I realized it was Pascal. That, and I remember BASIC a bit more clearly than Pascal; gut feeling was that it would be easier to learn VB than Delphi's Object Pascal.

But maybe not.

David Fischer
Monday, December 24, 2001

"I was expecting that Delphi was based on C/C++." If you want the Delphi Environment with C/C++ get CBuilder from Borland. Although IIRC they don't offer a free download.

Jan Derk
Monday, December 24, 2001

*  Recent Topics

*  Fog Creek Home