several mingw32 compilation fixes

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5642 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2000-01-24 20:19:39 +00:00
parent c857185ce0
commit 3c1a88d8b8
8 changed files with 66 additions and 30 deletions

View File

@ -40,7 +40,7 @@
# include <dl.h>
typedef shl_t wxDllType;
#elif defined(__WINDOWS__)
//# include <windows.h>
# include <windows.h> // needed to get HMODULE
typedef HMODULE wxDllType;
#elif defined(__OS2__)
# define INCL_DOS
@ -61,6 +61,7 @@
// ----------------------------------------------------------------------------
// wxDllLoader
// ----------------------------------------------------------------------------
/** wxDllLoader is a class providing an interface similar to unix's
dlopen(). It is used by the wxLibrary framework and manages the
actual loading of DLLs and the resolving of symbols in them.
@ -69,30 +70,31 @@
*/
class wxDllLoader
{
public:
/** This function loads a shared library into memory, with libname
being the basename of the library, without the filename
extension. No initialisation of the library will be done.
@param libname Name of the shared object to load.
@param success Must point to a bool variable which will be set to TRUE or FALSE.
@return A handle to the loaded DLL. Use success parameter to test if it is valid.
*/
static wxDllType LoadLibrary(const wxString & libname, bool *success = NULL);
/** This function unloads the shared library. */
static void UnloadLibrary(wxDllType dll);
/** This function returns a valid handle for the main program
itself. */
static wxDllType GetProgramHandle(void);
/** This function resolves a symbol in a loaded DLL, such as a
variable or function name.
@param dllHandle Handle of the DLL, as returned by LoadDll().
@param name Name of the symbol.
@return A pointer to the symbol.
*/
static void * GetSymbol(wxDllType dllHandle, const wxString &name);
private:
/// forbid construction of objects
wxDllLoader();
public:
/** This function loads a shared library into memory, with libname
being the basename of the library, without the filename
extension. No initialisation of the library will be done.
@param libname Name of the shared object to load.
@param success Must point to a bool variable which will be set to TRUE or FALSE.
@return A handle to the loaded DLL. Use success parameter to test if it is valid.
*/
static wxDllType LoadLibrary(const wxString & libname, bool *success = NULL);
/** This function unloads the shared library. */
static void UnloadLibrary(wxDllType dll);
/** This function returns a valid handle for the main program
itself. */
static wxDllType GetProgramHandle(void);
/** This function resolves a symbol in a loaded DLL, such as a
variable or function name.
@param dllHandle Handle of the DLL, as returned by LoadDll().
@param name Name of the symbol.
@return A pointer to the symbol.
*/
static void * GetSymbol(wxDllType dllHandle, const wxString &name);
private:
/// forbid construction of objects
wxDllLoader();
};
// ----------------------------------------------------------------------------

View File

@ -544,7 +544,6 @@ wxControl *wxResourceTable::CreateItem(wxWindow *parent, const wxItemResource* c
// Force the layout algorithm since the size changes the layout
if (control->IsKindOf(CLASSINFO(wxRadioBox)))
{
wxSize sz = control->GetSize();
control->SetSize(-1, -1, -1, -1, wxSIZE_AUTO_WIDTH|wxSIZE_AUTO_HEIGHT);
}
#endif

View File

@ -46,6 +46,11 @@
#include "wx/msw/dib.h"
#include "wx/image.h"
// missing from mingw32 header
#ifndef CLR_INVALID
#define CLR_INVALID ((COLORREF)-1)
#endif // no CLR_INVALID
// ----------------------------------------------------------------------------
// macros
// ----------------------------------------------------------------------------

View File

@ -47,9 +47,16 @@
#include <print.h>
#endif
// mingw32 defines GDI_ERROR incorrectly
#ifdef __GNUWIN32__
#undef GDI_ERROR
#define GDI_ERROR ((int)-1)
#endif
// ----------------------------------------------------------------------------
// wxWin macros
// ----------------------------------------------------------------------------
IMPLEMENT_CLASS(wxPrinterDC, wxDC)
// ============================================================================

View File

@ -50,6 +50,24 @@
#include "wx/msw/gnuwin32/extra.h"
#endif
// some compilers headers don't define this one (mingw32)
#ifndef DMLERR_NO_ERROR
#define DMLERR_NO_ERROR (0)
// this one is also missing from some mingw32 headers, but there is no way
// to test for it (I know of) - the test for DMLERR_NO_ERROR works for me,
// but is surely not the right thing to do
extern "C"
HDDEDATA STDCALL DdeClientTransaction(LPBYTE pData,
DWORD cbData,
HCONV hConv,
HSZ hszItem,
UINT wFmt,
UINT wType,
DWORD dwTimeout,
LPDWORD pdwResult);
#endif // no DMLERR_NO_ERROR
// ----------------------------------------------------------------------------
// macros and constants
// ----------------------------------------------------------------------------

View File

@ -232,13 +232,16 @@ bool wxImageList::Remove(int index)
// Remove all images
bool wxImageList::RemoveAll()
{
bool ok = ImageList_RemoveAll(GetHImageList()) != 0;
if ( !ok )
// don't use ImageList_RemoveAll() because mingw32 headers don't have it
int count = ImageList_GetImageCount(GetHImageList());
for ( int i = 0; i < count; i++ )
{
wxLogLastError("ImageList_RemoveAll()");
// the image indexes are shifted, so we should always remove the first
// one
(void)Remove(0);
}
return ok;
return TRUE;
}
// Draws the given image on a dc at the specified position.

View File

@ -19,6 +19,7 @@
#ifdef __GNUG__
#pragma implementation "listctrl.h"
#pragma implementation "listctrlbase.h"
#endif
// For compilers that support precompilation, includes "wx.h".

View File

@ -19,6 +19,7 @@
#ifdef __GNUG__
#pragma implementation "spinbutt.h"
#pragma implementation "spinbutbase.h"
#endif
// For compilers that support precompilation, includes "wx.h".