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

View File

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

View File

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

View File

@@ -50,6 +50,24 @@
#include "wx/msw/gnuwin32/extra.h" #include "wx/msw/gnuwin32/extra.h"
#endif #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 // macros and constants
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------

View File

@@ -232,13 +232,16 @@ bool wxImageList::Remove(int index)
// Remove all images // Remove all images
bool wxImageList::RemoveAll() bool wxImageList::RemoveAll()
{ {
bool ok = ImageList_RemoveAll(GetHImageList()) != 0; // don't use ImageList_RemoveAll() because mingw32 headers don't have it
if ( !ok ) 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. // Draws the given image on a dc at the specified position.

View File

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

View File

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