You can download the "WinSail" software for free at the website www.firstsail.b2b.com. It can convert dialog boxes made with VC into "source code" or "script folders" supported by the "WinSail" software. Currently, a "WinSail Industrial Control Development System" is widely used in the industry. Its launch truly enables designers not to spend too much time on hardware, low-level operations, interfaces, parameter settings, etc. when developing products for embedded PCs, and only need to focus on functional development. As long as you understand C++ For DOS or Visual C++, you can program under DOS to generate an application system comparable to Windows!
The "WinSail Industrial Control Development System" is a software development kit developed based on the DOS system using Borland C++ 3.1 language in Large mode. Although the complete software package is about 450K, the programs generated under DOS can have the same interface as WIN9x, with interface elements such as Group, Label, Edit, ComboBox, Button, Radio, Check, ListBox, Grid, ScrollBar, Desktop, ToolsBar, StatusBar, Menu, PopuMenu, Window, Dialog, ICON, Bitmap, oscilloscope, etc. It supports the mouse, and 99.9% of the control operations are compatible with Windows! It can load and run script dialog boxes; supports Socket socket programming; the smallest application with a complete window graphical interface is about 150K and can run in an electronic disk with only 1M; has a delay function with an accuracy of 0.5 microseconds. It can be said that DOS + WinSail >= Windows CE
I. File Description
1: File: WinSail Industrial Control Development System.doc ---- Brief instruction manual for the WinSail system
2: Directory: WinToDos --------------------- Conversion program
3: Directory: include2 --------------------- System "header files" and "library files"
4: Directory: Sail3000 --------------------- Application project examples
5: Directory: Application ------------------ VC++ program, with multiple dialog boxes
II. File Description in the include2 Directory
01: Barcode.h ----------- Header file for barcode display/printing, class interface
02: DownComm.h ---------- COMM port communication, class interface
03: Foxpro.h ------------ Foxpro 2.6 database, class interface
04: GageRR.h ------------ Report on measurement reliability and repeatability, class interface
05: Graph.h ------------- Oscilloscope and multi-ordinate oscilloscope, class interface
06: HglgPrit.h ---------- Display of text, BITMAP pictures, ICON icons, WAV sound playback, API interface
07: Kernal.h ------------ Multitasking, API interface
08: Listing.h ----------- Doubly linked list, class interface
09: Memroy.h ------------ XMS and EMS memory, class interface
10: Mouse.h ------------ Mouse, API interface
11: MyFrame.h ---------- Control and kernel initialization, class and API interface
12: NewMath.h ---------- Math library, API interface
13: Register.h --------- Reading and writing access to text INI files, class interface
14: Relay.h ------------ Object-oriented I/O access, API interface
15: Spc.h -------------- Process statistics control SPC, class interface
16: SVga_Dev.h --------- Graphics driver for 800*600*256, 1024*768*256 resolutions, API interface
17: Symbol.h ----------- Symbol definition
18: EgavgaF.Obj --------- BC31 far call driver program
19: Sail.Lib ----------- System library file
III. File Description in the Sail3000 Directory
01: Config.Sys ----------- System driver configuration file
02: Display.Fon ---------- 8*16 English font and 16*16 Simplified Chinese font
02: DisplayF.Fon --------- 8*16 English font and 16*16 Traditional Chinese font
03: Dwpword.Exe ---------- File for viewing user and password (advanced application)
04: Pass.Bin ------------- User and password database, binary
05: Mouse.Com ------------ Mouse driver program
06: Sail2000.Cpp --------- Sample source file of user project
07: Sail2000.Prj --------- Sample project file of user project
08: Sail2000.Exe --------- Main program of user project
09: a.bat ---------------- Batch file of user project
10: Sys\Destop.Sys ------- Desktop configuration file of user project
11: Sys\Manager.Sys ------ Desktop configuration file of user project
12: Sys\Relay.Sys -------- I/O configuration file of user project
13: Bmp\Computer.Bmp----- A picture used by the kernel
14: Bmp\Desktop.Bmp------ A picture used by the kernel
15: Bmp\Winnt.BMp-------- A picture used by the password box
16: Bmp\Sail200.Ico------ Default title bar icon of the window
17: Bmp\BookS??.Ico------ Default icon of the menu
18: Bmp\MsgBox??.Ico----- Icon used by the information box
19: Bmp\Display.Ico------ A icon used by the kernel
20: Bmp\Net.Ico---------- A icon used by the kernel
IV. File Description in the WinToDos Directory
For the files in the VC project, only the "Project.rc" and "Resource.h" files are valuable
01: MakeDlg.Exe ---------- Convert the resource dialog box in VC into the dialog box source program of WinSail
02: RegisterDll.Dll ------ DLL file supporting MakeDlg.Exe to access the text INI registry
V. Configuration Instructions for DOS Boot File
Assume the directory name of Win is "c:\Windows" and the directory of BC31 is "C:\Bc31"
Configure C:\Config.Sys as follows
Device = C:\Windows\Himem.Sys/TestMem:Off
Device = C:\Windows\Emm386.Exe Ram HighScan
DOS = High,Umb
Stacks = 9,256
Files = 25
Configure C:\Autoexec.Bat as follows
path C:\Windows;C:\Windows\Command;C:\Bc31\Bin
Lh SmartDrv.Exe
VI. Requirements for the Main() Main Function
1: Need to include the header files "Symbol.h" and "MyFrame.h"
2: First call the BOOL InitSystem(int argc, char** argv) kernel initialization function
3: Write your own code in the middle
4: Finally call the BOOL CloseSystem() kernel exit function.
5: Example:
#include "Symbol.h"
#include "Myframe.h"
extern unsigned _strlen = 60u * 1024u;
void far TransrateKey(CObject* pCurObj)
{
return(0);
}
int main(int argc, char** argv)
{
// System kernel initialization
if (!InitSystem(argc, argv))
{
::CloseSystem() ;
::printf("\nInit System Error!"

;
return(0);
}
// User code starts
//……
// User code ends
// Exit system kernel
::CloseSystem();
return(1);
}
VII. How to Create the Sail2000 Project and Code
01: Install BC31 on the C drive, preferably the directory is C:\Bc31
02: The user creates an "Include2" directory in their own BC31 directory
03: Copy all files in include2\*.* to the "include2" directory of C:\bc31
04: In the BC31 integrated environment, set the "Include include" path to "c:\bc31\include2;c:\bc31\include"
05: In the BC31 integrated environment, set "Large" large mode; "Default for memory model" default memory mode
06: In the BC31 integrated environment, set Floating Point to "80287/387" and Instruction Set to "80386"
07: In the BC31 integrated environment, create a project, assume the project name is Sail2000.Prj
08: Add the C:\BC31\include2\Sail.Lib kernel library file to the project
09: Add the C;\BC31\include2\Egavgaf.Obj graphics library file to the project
10: In the project, need to write the default window virtual keyboard function void far TransrateKey(CObject* pCurObj), generally as follows
void far TransrateKey(CObject* pCurObj)
{
return(0);
}
VC project's resource file ------ --------------à VC project's resource header file-------------------à Which file does it need to be converted into-----------------------à Generated function type------------------------à VC project's all dialog box ID number list----------à