Wine, WineLib and "Programming Windows 95 with MFC"





Table of contents

  1. General
    1. Introduction
    2. News
    3. Testing configuration
    4. Statistics
    5. Installation
    6. Wine notes
    7. WineLib notes
  2. Test Results
  3. API Index

1. General

1.1. Introduction

Often called "The Petzold of MFC programmers" this book is a good complement. Where the Petzold tested the Win32 API directly, this book allows us to test how well Wine and Winelib support MFC based applications.
French title MFC Programmation sous Windows 95
French ISBN 2-84082-189-3
Original title Programming Windows 95 with MFC
Original ISBN 1-55615-902-1
Author Jeff Prosise
URL Second edition's site
Buying online Barnes & Noble
Buy.com

Get the complete testing kit, including these pages, from:
PrgMFC-0.1.1.tar.gz
(it's released under the X11 license)

1.2. News

1.3. Testing configuration

The tests have been performed on my Linux box:

1.4. Statistics

44 examples
17 have been tested (39%)
10 have Wine errors (59% of tested) 11 have warnings (65% of tested)
for a total of 14 errors for a total of 13 warnings
0 have WineLib errors (0% of total) 0 have warnings (0% of total)
for a total of 0 errors for a total of 0 warnings
44 executables 0 WineLib executables (0%)
84 C++ files 0 compiled (0%)
34 RC files 0 compiled (0%)

1.5. Installation

To install this testing kit follow these steps:

 #Copy the contents of the CD to some directory.
 mkdir PrgMFC
 cd PrgMFC
 cp -r /cdrom/CODE/* .
 # The directories will be read-only, make them read-write
 chmod u+w Chap*
 # Uncompress the contents of the testing kit. Adapt to the version you got
 tar xvfz ~/PrgMFC-0.1.1.tar.gz
 # Then rename files to lowercase, perform a dos2unix and apply patches
 ./generate --setup
 make setup
 

To perform the tests with Wine you will need to set up LD_LIBRARY_PATH and PATH like you usually do when you want to use Wine.

1.6. Wine notes

Informal tests seem to indicate that most programs work fine.

1.7. WineLib notes

Not tested yet since it requires the MFC.

2. Test Results

  1. Chapter 1 - Hello, MFC (Salut, MFC)
    1. hello Wine: 1 warning
  2. Chapter 2 - Drawing in a Window (Dessiner dans une feneêtre)
    1. GdiDemo1 Wine: 1 error, 3 warnings
    2. GdiDemo2 Wine: 1 error, 1 warning
    3. GdiDemo3
  3. Chapter 3 - The mouse and the keyboard (La souris et le clavier)
    1. GdiDemo4
    2. MouseCap Wine: 1 error, 1 warning
    3. TicTac
    4. VisualKB Wine: 1 error, 1 warning
  4. Chapter 4 - Menus (Les menus)
    1. Paint1 Wine: 1 error, 1 warning
    2. Paint2 Wine: 1 warning
  5. Chapter 5 - Controls (Les contrôles)
    1. CtlDemo1 Wine: 4 errors, 1 warning
    2. CtlDemo2 Wine: 2 errors
    3. CtlDemo3 Wine: 1 warning
    4. CtlDemo4 Wine: 1 error
    5. CtlDemo5 Wine: 1 error
    6. FontView Wine: 1 error, 1 warning
    7. IconView Wine: 1 warning
  6. Chapter 6 - Dialog boxes and property sheets (Les boîtes de dialogue et les feuilles de propriétés)
    1. DlgCalc
    2. DlgDemo1
    3. DlgDemo2
    4. DlgDemo3
    5. DlgDemo4
    6. DlgDemo5
    7. FoneList
    8. Paint3
    9. PropDemo
  7. Chapter 7 - Timers and idle processing (Les minuteries et le traitement des temps morts)
    1. Clock
    2. IdleDemo
  8. Chapter 8 - Documents, views and the SDI interface (Les documents, les vues et l'interface SDI)
    1. Paint4
  9. Chapter 9 - Multiple documents and multiple views (Les documents et les vues multiples)
    1. Paint5
    2. Paint6
    3. Paint7
  10. Chapter 10 - Printing and print previewing(L'impression et l'aperçu avant impression)
    1. EZPrint
    2. HexDump
  11. Chapter 11 - Toolbars, status bars, and versionable schemas (Les barres d'outils, les barres d'état et le sch&eacure;mas versionnables)
    1. MyWord
  12. Chapter 12 - Bitmaps, palettes and regions (Les bitmaps, les palettes et les régions)
    1. BitmapDemo
    2. LivePalette
    3. PaletteDemo
    4. RegionDemo
    5. Vista
  13. Chapter 13 - The common controls (Les contrôles communs)
    1. GridDemo
    2. Wanderer
  14. Chapter 14 - Threads and thread synchronization (Les threads et leur synchronisation)
    1. MTDemo
    2. Threads

3. API Index

This is an inverted list of the APIs used by the examples. Click on one of the functions to find which of the sample programs invoke it.

  1. GDI32
    DeleteObject, EnumFontFamiliesA, GetDIBColorTable
     
  2. KERNEL32
    CloseHandle, CompareFileTime, FindFirstFileA, FindNextFileA, GetDriveTypeA, GetLogicalDrives, GetModuleHandleA, GetStartupInfoA, GetVersion, Sleep, WaitForSingleObject, lstrcmpA, lstrcpyA
     
  3. MSVCR40D
    _CxxThrowException, _XcptFilter, __CxxFrameHandler, __dllonexit, __getmainargs, __p__acmdln, __p__commode, __p__fmode, __set_app_type, __setusermatherr, _adj_fdiv_m64, _adjust_fdiv, _controlfp, _except_handler3, _exit, _ftol, _hypot, _initterm, _itoa, _onexit, _setmbcp, atoi, cos, exit, floor, memcpy, memset, pow, sin, strtod
     
  4. SHELL32
    DragFinish, DragQueryFileA, ExtractIconA
     
  5. USER32
    CopyRect, DestroyCaret, GetAsyncKeyState, GetClassLongA, GetCursorPos, GetMessagePos, GetSysColor, GetSysColorBrush, GetSystemMetrics, IsCharAlphaNumericA, IsClipboardFormatAvailable, IsDialogMessageA, LoadAcceleratorsA, LoadBitmapA, LoadImageA, MessageBeep, ReleaseCapture, SetCursor, SetMenuDefaultItem, TranslateAcceleratorA
fgouget@free.fr This page is hosted for free by Free.fr