1.1Why learn C?
1.3.2What are “function parameters” ?
1.3.3Console mode programs and windows programs
1.3.4An overview of the compilation process
1.3.5The run time environment
1.4An overview of the standard libraries
1.4.1The “stdheaders.h” include file
1.4.2Passing arguments to a program
1.7Declarations and definitions
1.7.4Scope of identifiers
1.7.5Linkage and duration of objects
1.8Errors and warnings
1.9Input and output
1.9.2The typical sequence of operations
1.9.4Other input/output functions
1.10Commenting the source code
1.10.1Describing a function
1.11An overview of the whole language
1.11.4Windows specific defined symbols
1.11.5Structured exception handling
1.11.7Windows specific syntax
1.12Extensions of lcc-win
1.13A closer view
1.13.8The four operations
1.13.24Break and continue statements
1.13.38Precedence of the different operators
1.14The printf family
1.14.2The conversion flags
1.14.3The size specification
1.15.1Operations with pointers
1.15.3Pointers and arrays
1.16.2Register variables and longjmp()
1.17.4Write ispowerOfTwo without any loops
1.18Using arrays and sorting
1.18.2Other qsort applications
1.18.3Summary of Arrays and sorting
1.19Pointers and references
1.20Structures and unions
1.21.1Fine points of structure use
1.22Identifier scope and linkage
1.24Extending a program
1.25Improving the design
1.26Traditional string representation in C
1.27The problems with C-“Strings“
1.28.1A buffer overflow in the C standard document
1.29Memory management and memory layout
1.29.1Functions for memory allocation
1.29.2Memory layout under windows74
1.30Memory management strategies
1.30.2Stack based allocation
1.30.3“Arena” based allocation
1.30.4The malloc / free strategy
1.30.5The malloc with no free strategy
1.30.6Automatic freeing (garbage collection)
1.30.8A debugging implementation of malloc
1.31.1The organization of the table
1.31.3Displaying the results
1.32Time and Date functions
1.33Using structures (continued)
1.34A closer look at the pre-processor
1.34.2Things to watch when using the preprocessor
1.35Using function pointers
1.36Advanced C programming with lcc-win
1.36.5Structured exception handling
1.36.6The signal function
1.37.1Floating point formats
1.37.2What can we do with those numbers then?
1.1Using the floating point environment
1.1.1The status flags
1.1.2Reinitializing the floating point environment
1.1The libraries of lcc-win
1.1.1The regular expressions libraries
1.1.2Console formatting routines
1.1.4Linear algebra library
1.1.6Advanced math functions
1.1.8Structured Query Language (SQL)
1.1.10The regular expressions library. A “grep” clone
1.2Programming with security in mind
1.2.1Always include a ‘default’ in every switch statement
1.2.2Pay attention to strlen and strcpy
1.2.3Do not assume correct input
1.2.4Watch out for trojans
1.3Pitfalls of the C language
1.3.1Defining a variable in a header file
1.3.2Confusing = and ==
1.3.3Forgetting to close a comment
1.3.4Easily changed block scope
1.3.5Using the ++ or -- more than once in an expression
1.3.6Unexpected Operator Precedence
1.3.7Extra Semi-colon in Macros
1.3.8Watch those semicolons!
1.3.9Assuming pointer size is equal to integer size
1.3.10Careful with unsigned numbers
1.3.11Changing constant strings
1.3.12Indefinite order of evaluation
1.3.13A local variable shadows a global one
1.3.14Careful with integer wraparound
1.3.15Problems with integer casting
1.3.17Wrong assumptions with realloc
1.3.18Be careful with overflow
1.4Fun with C
2.1Introduction to windows programming
2.1.3The dialog box procedure
2.4Dynamically linked libraries (DLLs)
2.6A more formal approach
2.6.2Event oriented programming
2.7A more advanced window
2.8Customizing the wizard generated sample code
2.8.1Making a new menu or modifying the given menu
2.8.2Adding a dialog box
2.8.3Drawing the window
2.8.4Initializing or cleaning up
2.8.5Getting mouse input
2.8.6Getting keyboard input
2.10A more complex example: a "clone" of spy.exe
2.10.1Creating the child windows
2.10.2Moving and resizing the child windows
2.10.4Building the window tree
2.10.5Scanning the window tree
2.10.7Filling the status bar
2.11Numerical calculations in C
2.12Filling the blanks
2.13 Using the graphical code generator
2.14.1Processing the WM_CTLCOLORXXX message
2.14.2Using the WM_DRAWITEM message
2.15Building custom controls
2.16.1The structure of the registry
2.16.2Enumerating registry subkeys
2.16.3Rules for using the registry
2.18Advanced windows techniques
2.18.1Memory mapped files
2.18.2Letting the user browse for a folder: using the shell
2.20.1Dialog will not display when you add a control
2.21Some Coding Tips
2.21.1Determining which version of Windows is running
2.21.2Translating the value returned by GetLastError() into a
2.21.3Clearing the screen in text mode
2.21.4Getting a pointer to the stack
2.21.5Disabling the screen saver from a program
2.21.6Drawing a gradient background
2.21.7Capturing and printing the contents of an entire window
2.21.8Centering a dialog box in the screen
2.21.9Determining the number of visible items in a list box
2.21.10Starting a non-modal dialog box
2.21.11Displaying the environment variables
2.21.12Propagating environment variables to the parent
2.21.13Restarting the shell under program control
2.21.14Translating client coordinates to screen coordinates
2.21.15Passing an argument to a dialog box procedure
2.21.16Calling printf from a windows application
2.21.17Enabling or disabling a button or control in a dialog box
2.21.18Making a window class available for all applications in
2.21.19Accessing the disk drive directly without using a file
2.21.20Retrieving the Last-Write Time
2.21.21Retrieving the file name from a FILE pointer
2.21.22Setting the System Time
2.21.23Getting the list of running processes
2.21.24Changing a File Time to the Current Time
2.21.25Converting from GMT (UTC) time to local time
2.21.26Displaying the amount of disk space for each drive
2.21.27Mounting and unmounting volumes in NTFS 5.0
2.22.1How do I create a progress report with a Cancel button?
2.22.2How do I show in the screen a print preview?
2.22.3How do I change the color of an edit field?
2.22.4How do I draw a transparent bitmap?
2.22.5How do I draw a gradient background?
2.22.6How do I calculate print margins?
2.22.7How do I calculate the bounding rectangle of a string of
2.22.8How do I close an open menu?
2.22.9How do I center a dialog box in the screen?
2.22.10How do I create non-rectangular windows?
2.22.11How do I implement a non-blinking caret?
2.22.12How do I create a title window (splash screen)?
2.22.13How do I append text to an edit control?
2.22.14How do I determine the color settings?
2.22.15How do I spawn a process with redirected stdin and
2.22.16How to modify the width of the list of a combo box
2.22.17How do I modify environment variables permanently?
2.22.18How do I add a new directory to the PATH variable
2.22.19How do I add a menu item to the explorer right click
2.22.20How do I translate between dialog units and pixels?
2.22.21I initialize in WM_CREATE but the values of my variable
2.22.22How do I translate between client coordinates to screen
2.22.23When should I use critical sections and when is a mutex
2.22.24Why is my call to CreateFile failing when I use conin$ or
2.22.25How can I control the task bar under program control?
2.22.26How to erase a file into the recycle bin?
2.22.27Making a timed message box
2.22.28How do I build a “Property-sheet” control?
2.22.29How to tell Windows to run a program during startup ?
2.22.30How do I disable the screen saver?
2.22.31How do I play a sound?
2.22.32How do I simulate a key stroke to send it to another
2.22.33How can I encrypt and decrypt a character string?
2.23Finding more examples and source code
2.24Overview of lcc-win’s documentation
3.1.1What is a network?
3.3The HTTP Protocol
3.4The FTP protocol
3.4.1Implementing the ftp “GET”
3.5Querying the network parameters
3.6.1How does it work?
3.7Client/Server programming using sockets
3.7.1Common steps for server and client
3.7.4Sending and receiving data
3.7.5Simplifying sockets programming with lcc-win