From 6a748376efc94d468207aefe7704ee072efd3718 Mon Sep 17 00:00:00 2001 From: "Dimitrie O. Paun" Date: Wed, 28 Jan 2004 20:07:59 +0000 Subject: [PATCH] Remove a bunch of dummy and/or obsolete info from the Winelib Developers Guide. --- documentation/Makefile.in | 1 - documentation/winelib-bindlls.sgml | 57 +++++++++++------------------- documentation/winelib-mfc.sgml | 10 ------ documentation/winelib-pkg.sgml | 15 -------- documentation/winelib-porting.sgml | 25 ------------- documentation/winelib-user.sgml | 2 -- 6 files changed, 20 insertions(+), 90 deletions(-) delete mode 100644 documentation/winelib-pkg.sgml diff --git a/documentation/Makefile.in b/documentation/Makefile.in index 1ff1926e082..db091931c12 100644 --- a/documentation/Makefile.in +++ b/documentation/Makefile.in @@ -43,7 +43,6 @@ WINELIB_USER_SRCS = \ winelib-bindlls.sgml \ winelib-intro.sgml \ winelib-mfc.sgml \ - winelib-pkg.sgml \ winelib-porting.sgml \ winelib-toolkit.sgml diff --git a/documentation/winelib-bindlls.sgml b/documentation/winelib-bindlls.sgml index 0e59a62b97f..c86df092bed 100644 --- a/documentation/winelib-bindlls.sgml +++ b/documentation/winelib-bindlls.sgml @@ -53,7 +53,7 @@ of the functions etc. have been changed to protect the innocent). A large Windows application includes a DLL that links to a third-party DLL. For various reasons the third-party DLL does not work too well - under Wine. However the third-party DLL is also available for the + under Wine. However the third-party library is also available for the Linux environment. Conveniently the DLL and Linux shared library export only a small number of functions and the application only uses one of those. @@ -62,8 +62,7 @@ Specifically, the application calls a function: signed short WINAPI MyWinFunc (unsigned short a, void *b, void *c, - unsigned long *d, void *e, unsigned char f, char g, - unsigned char *h); + unsigned long *d, void *e, int f, char g, unsigned char *h); and the linux library exports a corresponding function: @@ -83,8 +82,7 @@ signed short MyLinuxFunc (unsigned short a, void *b, void *c, In the simple example we want a Wine built-in Dll that corresponds to the MyWin Dll. The spec file is MyWin.dll.spec and - looks something like this (depending on changes to the way that the - specfile is formatted since this was written). + looks something like this: # # File: MyWin.dll.spec @@ -102,10 +100,9 @@ signed short MyLinuxFunc (unsigned short a, void *b, void *c, # End of file Notice that the arguments are flagged as long even though they are - smaller than that. - Notice also that we do not specify an initial function. With this - example we will link directly to the Linux shared library whereas - with the ODBC example we will load the Linux shared library dynamically. + smaller than that. With this example we will link directly to the + Linux shared library whereas with the ODBC example we will load the + Linux shared library dynamically. In the case of the ODBC example you can see this in the file @@ -113,23 +110,17 @@ signed short MyLinuxFunc (unsigned short a, void *b, void *c, - - How to deal with C++ APIs - - names are mangled, how to demangle them, how to call them - - - Writing the wrapper Firstly we will look at the simple example. The main complication of this case is the slightly different argument lists. The f parameter does not have to be passed to the Linux function and the d parameter - (theoretically) has to be converted between unsigned long * and - unsigned short *. Doing this ensures that the "high" bits of the - returned value are set correctly. Also unlike with the ODBC example we - will link directly to the Linux Shared Library. + (theoretically) has to be converted between + unsigned long *i and unsigned short *. + Doing this ensures that the "high" bits of the returned value are set + correctly. Also unlike with the ODBC example we will link directly to + the Linux Shared Library. /* * File: MyWin.c @@ -153,9 +144,6 @@ signed short MyLinuxFunc (unsigned short a, void *b, void *c, #include < <3rd party linux header> > #include <windef.h> /* Part of the Wine header files */ -signed short WINAPI MyProxyWinFunc (unsigned short a, void *b, void *c, - unsigned long *d, void *e, unsigned char f, char g, - unsigned char *h) /* This declaration is as defined in the spec file. It is deliberately not * specified in terms of <3rd party> types since we are messing about here * between two operating systems (making it look like a Windows thing when @@ -163,6 +151,8 @@ signed short WINAPI MyProxyWinFunc (unsigned short a, void *b, void *c, * inconsistencies. * For example the fourth argument needs care */ +signed short WINAPI MyProxyWinFunc (unsigned short a, void *b, void *c, + unsigned long *d, void *e, int f, char g, unsigned char *h) { unsigned short d1; signed short ret; @@ -282,22 +272,15 @@ signed short WINAPI MyProxyWinFunc (unsigned short a, void *b, void *c, - - Advanced options + + Converting filenames - Here are a few more advanced options. + Suppose you want to convert incoming DOS format filenames to their + Unix equivalent. Of course there is no suitable function in the true + Microsoft Windows API, but wine provides a function for just this + task and exports it from its copy of the kernel32 DLL. The function + is wine_get_unix_file_name (defined in winbase.h). - - Converting filenames - - Suppose you want to convert incoming DOS format filenames to their - Unix equivalent. Of course there is no suitable function in the true - Microsoft Windows API, but wine provides a function for just this - task and exports it from its copy of the kernel32 DLL. The function - is wine_get_unix_file_name (defined in winbase.h). Use the -ikernel32 - option to winemaker to link to it. - - diff --git a/documentation/winelib-mfc.sgml b/documentation/winelib-mfc.sgml index d71d254d022..68fe4235241 100644 --- a/documentation/winelib-mfc.sgml +++ b/documentation/winelib-mfc.sgml @@ -209,16 +209,6 @@ - - Using the MFC - - - - Specific winemaker options, - the configure options, - the initialization problem... - - diff --git a/documentation/winelib-porting.sgml b/documentation/winelib-porting.sgml index 4acef00a653..d2936adc064 100644 --- a/documentation/winelib-porting.sgml +++ b/documentation/winelib-porting.sgml @@ -149,31 +149,6 @@ - - VC's native COM support - - don't use it, - guide on how to replace it with normal C++ code (yes, how???): - extracting a .h and .lib from a COM DLL - Can '-fno-rtti' be of some use or even required? - - - - - SEH - - how to modify the syntax so that it works both with gcc's macros and Wine's macros, - is it even possible? - - - - - Others - - -fpermissive and -fno-for-scope, - maybe other options - -