Mike - Thanks for your feedback.<br>
<br>
Roger - <br>
<br>
<< I think the easiest way to start is to use Borland's (Inprise's) Easywin program, or something similar, that creates the 16 bit Windows headers for you transparently (Standard version <$100). I don't us MS C, but I think an old 16 bit version might do something similar.>><br>
<br>
Perhaps you missed an earlier statement of mine when I said that I wanted the Windows program to be 32 bit. This is not an absolute necessity, however, one of my reasons for this is that the program performs a _lot_ of memory management (running completely in the 1st 640K of mem). It allocates and frees large chunks of memory very often. (I even have my own routines for defragging memory every so often). I had to write the program this way to get it to work in just the lower 640k of memory (actually the MS overlay manager does use extended memory to store overlays read from disk). <br>
<br>
The program also does a fair amount of 32 bit number crunching on large arrays of numbers when it computes coefficients of inbreeding, relationship coefficients, and genetic inheritance probabilities. So it seems to me that in the long run memory management would be less trouble and caculations would be faster in a 32 bit environment (I would guess that 25% of my time programming this application has been spent working on and around memory management problems...{there are a huge number of animals in a 30 generation pedigree} for a variety of reasons I decided to stay away from DOS extenders and from using extended/expanded memory).<br>
<br>
<< One rule I follow is: change any printf to sprintf (str_var,...) The str_var, a string buffer, can be used in a graphical environment (msgbox), whereas printf is incompatible with windows. >> <br>
<br>
I wrote all of my own file and print library functions and none of them use "printf" (I do use "sprintf" quite often though). The program does allow printing to a file, the screen, or an actuall printer. It has its own printer install function that sets up some basic printer control codes that are used when output is sent to the printer and which get translated into color attributes when output is sent to the screen.<br>
<br>
<< A simple header flag (#DEFINE RUNWIN 1) might allow you to change much I/O for Windows environment.>><br>
<br>
I'm not sure I understand what you mean here. Are you perhaps thinking in terms of a compiler directive that would allow me to compile the program for either DOS or Windows?<br>
<br>
<< You probably don't want to fool with processing key strokes in windows environment. In an event-driven programming model, using the MS classes, or whatever, to change most of the inputs to buttons, checkboxes, etc, then process a bunch of stuff at once. >><br>
<br>
Not an option. I _must_ be able to process key strokes. The program has a lot of shortcut keys and its own keyboard macro recorder/playback functionality. I have about 6,000 customers using this software and a fair percentage of them (mostly touch typists) really appreciate the fact that they can operate the program (much faster) entirely from the keyboard. BTW, I wrote the program in a very event-driven manner. So for example, when a user is inputting or editing a string or a number and they press a certain function key or key combo, the Edit_Str function is exited and a menu may drop down or some other desired event will happen (after they are asked if they want to save changes to the current record). Almost every one of my libray IO functions return either a status value and/or what I call an "exit" key. <br>
<br>
Speaking of my library functions, I use them almost exclusively for all IO, including writing directly to the screen refresh buffer. The relational database is of my own design and it can maintain multiple multi-field indexes that can be added/changed on the fly by the end user. I do use the stream FILE IO functions in the MS C libray but even those are called via one of my own library functions. I tried to limit my use of MS C libray functions in my main code modules to those that I figured would work with little modification in a windows environment... such as string functions and disk/file IO functions. <br>
<br>
I knew that I would eventually want to be able to compile the program for the windows environment. So the most work, I think, will be to write analogous windows functions for those that I wrote for DOS, and then possibly put those functions into a .dll file, or just link them directly with the windows .exe that I create with the rest of the code. The program is _very_ quick and compact, considering everything that is does, and I would very much like to keep it that way. BTW, you can download a near full working demo copy of it at <
<br>
<< Use the graphical interface builders (C++Builder, or the Visual C equivalent.), if at all possible. >><br>
<br>
I don't have "C++Builder" or "EasyWin", but I do have Visual C++ v5.0 and Visual Studio v6.0 (PRO version). Do you haver an opinion on which of these 2 versions of C++ would be better for me to use. I haven't yet learned how to use the Visual IDE of either of the C++ versions I have from MS since I have been compiling everything from the command line with make files. I suppose if you really think that C++Builder or EasyWin is much easier to use or more powerful, I could purchase and use it instead of the MS products.<br>
<br>
I have to tell you that I have even considered using Visual Basic for the user interface while putting all of my genetics calculations into .dll files. However, since I have been playing with VB a little, it sure seems to me like it produces fat & slow executables ("hello world" is a 65K program <sheesh>

which is a real turn-off to me. <br>
<br>
Getting the DOS program converted to a Windows interface as quickly as possible (even if only as a 16 bit exe) is my main concern. While I'm sure that the MS Visual C products can produce what I need, at the same time it seems like they are somewhat overkill for what I need (I could easily be wrong about this). I don't really have the time right now to learn a whole lot of stuff that I may never use.<br>
<br>
regards... Bob