* some C++ness correction in wxStream.

* added support for DLL on Borland32
* fixed export bugs
* fixed a portability problem in socket.cpp
* added a missing function in utilsexc.cpp


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@715 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Guilhem Lavaux
1998-09-08 17:19:16 +00:00
parent 6f5f3ca0fe
commit c740f49634
12 changed files with 165 additions and 26 deletions

View File

@@ -18,7 +18,7 @@
#include <wx/stream.h> #include <wx/stream.h>
class wxDataInputStream: virtual public wxFilterInputStream { class wxDataInputStream: public virtual wxFilterInputStream {
public: public:
wxDataInputStream(wxInputStream& s); wxDataInputStream(wxInputStream& s);
virtual ~wxDataInputStream(); virtual ~wxDataInputStream();
@@ -31,7 +31,7 @@ public:
wxString ReadString(); wxString ReadString();
}; };
class wxDataOutputStream: virtual public wxFilterOutputStream { class wxDataOutputStream: public virtual wxFilterOutputStream {
public: public:
wxDataOutputStream(wxOutputStream& s); wxDataOutputStream(wxOutputStream& s);
virtual ~wxDataOutputStream(); virtual ~wxDataOutputStream();

View File

@@ -51,7 +51,7 @@
@param szFile and nLine - file name and line number of the ASSERT @param szFile and nLine - file name and line number of the ASSERT
szMsg - optional message explaining the reason szMsg - optional message explaining the reason
*/ */
void wxOnAssert(const char *szFile, int nLine, const char *szMsg = (const char *) NULL); void WXDLLEXPORT wxOnAssert(const char *szFile, int nLine, const char *szMsg = (const char *) NULL);
/// generic assert macro /// generic assert macro
#define wxASSERT(cond) if ( !(cond) ) wxOnAssert(__FILE__, __LINE__) #define wxASSERT(cond) if ( !(cond) ) wxOnAssert(__FILE__, __LINE__)

View File

@@ -22,8 +22,8 @@ protected:
bool m_file_destroy; bool m_file_destroy;
}; };
class wxFileInputStream: virtual public wxInputStream, class wxFileInputStream: public virtual wxInputStream,
virtual public wxFileStreamBase { public virtual wxFileStreamBase {
public: public:
wxFileInputStream(const wxString& fileName); wxFileInputStream(const wxString& fileName);
virtual ~wxFileInputStream(); virtual ~wxFileInputStream();
@@ -40,8 +40,8 @@ class wxFileInputStream: virtual public wxInputStream,
off_t DoTellInput() const; off_t DoTellInput() const;
}; };
class wxFileOutputStream: virtual public wxOutputStream, class wxFileOutputStream: public virtual wxOutputStream,
virtual public wxFileStreamBase { public virtual wxFileStreamBase {
public: public:
wxFileOutputStream(const wxString& fileName); wxFileOutputStream(const wxString& fileName);
virtual ~wxFileOutputStream(); virtual ~wxFileOutputStream();

View File

@@ -115,7 +115,7 @@ private:
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// global functions // global functions
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
WXDLLEXPORT wxLocale* wxGetLocale(); wxLocale* WXDLLEXPORT wxGetLocale();
// get the translation of the string in the current locale // get the translation of the string in the current locale
inline WXDLLEXPORT const char *wxGetTranslation(const char *sz) inline WXDLLEXPORT const char *wxGetTranslation(const char *sz)

View File

@@ -27,7 +27,7 @@ class wxMemoryStreamBase {
int m_iolimit; int m_iolimit;
}; };
class wxMemoryInputStream: virtual public wxMemoryStreamBase, public wxInputStream { class wxMemoryInputStream: public virtual wxMemoryStreamBase, public wxInputStream {
public: public:
wxMemoryInputStream(const char *data, size_t length); wxMemoryInputStream(const char *data, size_t length);
virtual ~wxMemoryInputStream(); virtual ~wxMemoryInputStream();
@@ -44,7 +44,7 @@ class wxMemoryInputStream: virtual public wxMemoryStreamBase, public wxInputStre
off_t m_position_i; off_t m_position_i;
}; };
class wxMemoryOutputStream: virtual public wxMemoryStreamBase, public wxOutputStream { class wxMemoryOutputStream: public virtual wxMemoryStreamBase, public wxOutputStream {
public: public:
wxMemoryOutputStream(char *data = NULL, size_t length = 0); wxMemoryOutputStream(char *data = NULL, size_t length = 0);
virtual ~wxMemoryOutputStream(); virtual ~wxMemoryOutputStream();

View File

@@ -183,8 +183,8 @@ class WXDLLEXPORT wxOutputStream {
wxStreamBuffer *m_o_streambuf; wxStreamBuffer *m_o_streambuf;
}; };
class wxStream: virtual public wxInputStream, class wxStream: public virtual wxInputStream,
virtual public wxOutputStream public virtual wxOutputStream
{ {
public: public:
wxStream(); wxStream();
@@ -194,7 +194,7 @@ class wxStream: virtual public wxInputStream,
// "Filter" streams // "Filter" streams
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
class WXDLLEXPORT wxFilterInputStream: virtual public wxInputStream { class WXDLLEXPORT wxFilterInputStream: public virtual wxInputStream {
public: public:
wxFilterInputStream(); wxFilterInputStream();
wxFilterInputStream(wxInputStream& stream); wxFilterInputStream(wxInputStream& stream);
@@ -215,7 +215,7 @@ class WXDLLEXPORT wxFilterInputStream: virtual public wxInputStream {
wxInputStream *m_parent_i_stream; wxInputStream *m_parent_i_stream;
}; };
class WXDLLEXPORT wxFilterOutputStream: virtual public wxOutputStream { class WXDLLEXPORT wxFilterOutputStream: public virtual wxOutputStream {
public: public:
wxFilterOutputStream(); wxFilterOutputStream();
wxFilterOutputStream(wxOutputStream& stream); wxFilterOutputStream(wxOutputStream& stream);
@@ -237,8 +237,8 @@ class WXDLLEXPORT wxFilterOutputStream: virtual public wxOutputStream {
}; };
class WXDLLEXPORT wxFilterStream: public wxStream, class WXDLLEXPORT wxFilterStream: public wxStream,
virtual public wxFilterInputStream, public virtual wxFilterInputStream,
virtual public wxFilterOutputStream { public virtual wxFilterOutputStream {
public: public:
wxFilterStream(wxStream& stream); wxFilterStream(wxStream& stream);
wxFilterStream(); wxFilterStream();

View File

@@ -1022,10 +1022,11 @@ void wxSocketBase::WantSpeedBuffer(char *buffer, size_t nbytes,
switch (evt) { switch (evt) {
case EVT_PEEK: case EVT_PEEK:
case EVT_READ: case EVT_READ:
ret = read(m_fd, buffer, nbytes); ret = recv(m_fd, buffer, nbytes,
(evt == EVT_PEEK) ? MSG_PEEK : 0);
break; break;
case EVT_WRITE: case EVT_WRITE:
ret = write(m_fd, buffer, nbytes); ret = send(m_fd, buffer, nbytes, 0);
break; break;
} }
if (ret < 0) { if (ret < 0) {

View File

@@ -17,9 +17,44 @@ DEBUG_FLAGS= -v -DWXDEBUG=1 -D__WXDEBUG__ -DUSE_DEFINE
OPT = -O2 OPT = -O2
DEBUG_FLAGS = -DUSE_DEFINE DEBUG_FLAGS = -DUSE_DEFINE
!endif !endif
CPPFLAGS=$(DEBUG_FLAGS) $(OPT) @$(CFG)
LIBTARGET= $(WXLIBDIR)\wx32.lib !ifndef DLL
DLL=0
!endif
# Target WXMAKINGDLL WXUSINGDLL WXBUILDDLL
# wxWin DLL 1 0 1
# wxWin STATIC 0 0 0
# App use wxWin DLL 0 1 0
# DLL use wxWin DLL 0 1 1
# DLL use wxWin STATIC 0 0 1
#
!if "$(WXMAKINGDLL)" == "1"
DLL_FLAGS= -DWXMAKINGDLL=1 -D_WINDLL
WXLIB= $(WXLIBDIR)\wx200.lib
!else
LINK_FLAGS= /Tpe /ap /c
!if "$(WXUSINGDLL)" == "1"
DLL_FLAGS= -DWXUSINGDLL=1
WXLIB= $(WXLIBDIR)\wx200.lib
!else
DLL_FLAGS=
WXLIB= $(WXLIBDIR)\wx32.lib
!endif
!endif
!if "$(WXBUILDDLL)" == "1"
DLL_FLAGS= $(DLL_FLAGS) -D_RTLDLL
LINK_FLAGS= /Tpd /ap /c
!endif
CPPFLAGS=$(DLL_FLAGS) @$(CFG)
DUMMY=dummy DUMMY=dummy
SRCSUFF = cpp SRCSUFF = cpp

View File

@@ -19,6 +19,12 @@
!endif !endif
WXDIR = $(WXWIN) WXDIR = $(WXWIN)
# Set all these to 1 if you want to build a dynamic library
#DLL=1
#WXMAKINGDLL=1
#WXBUILDDLL=1
!include $(WXDIR)\src\makeb32.env !include $(WXDIR)\src\makeb32.env
# Please set these according to the settings in wx_setup.h, so we can include # Please set these according to the settings in wx_setup.h, so we can include
@@ -43,8 +49,18 @@ PERIPH_TARGET=xpm $(PERIPH_TARGET)
PERIPH_CLEAN_TARGET=clean_xpm $(PERIPH_CLEAN_TARGET) PERIPH_CLEAN_TARGET=clean_xpm $(PERIPH_CLEAN_TARGET)
!endif !endif
LIBTARGET= $(WXLIBDIR)\wx32.lib PERIPH_LIBS=$(WXDIR)\lib\zlib.lib $(PERIPH_LIBS)
PERIPH_TARGET=zlib $(PERIPH_TARGET)
PERIPH_CLEAN_TARGET=clean_zlib $(PERIPH_CLEAN_TARGET)
!if "$(DLL)" == "0"
DUMMY=dummy DUMMY=dummy
!else
DUMMY=dummydll
LIBS= cw32 import32 ole2w32
!endif
LIBTARGET=$(WXLIB)
GENDIR=..\generic GENDIR=..\generic
COMMDIR=..\common COMMDIR=..\common
@@ -89,7 +105,6 @@ COMMONOBJS = \
$(MSWDIR)\memory.obj \ $(MSWDIR)\memory.obj \
$(MSWDIR)\module.obj \ $(MSWDIR)\module.obj \
$(MSWDIR)\object.obj \ $(MSWDIR)\object.obj \
$(MSWDIR)\odbc.obj \
$(MSWDIR)\postscrp.obj \ $(MSWDIR)\postscrp.obj \
$(MSWDIR)\prntbase.obj \ $(MSWDIR)\prntbase.obj \
$(MSWDIR)\resource.obj \ $(MSWDIR)\resource.obj \
@@ -112,9 +127,22 @@ COMMONOBJS = \
$(MSWDIR)\mstream.obj \ $(MSWDIR)\mstream.obj \
$(MSWDIR)\zstream.obj \ $(MSWDIR)\zstream.obj \
$(MSWDIR)\datstrm.obj \ $(MSWDIR)\datstrm.obj \
$(MSWDIR)\sckstrm.obj \
$(MSWDIR)\extended.obj \ $(MSWDIR)\extended.obj \
$(MSWDIR)\wincmn.obj $(MSWDIR)\wincmn.obj \
$(MSWDIR)\objstrm.obj \
$(MSWDIR)\dynlib.obj \
$(MSWDIR)\tokenzr.obj \
$(MSWDIR)\socket.obj \
$(MSWDIR)\sckaddr.obj \
$(MSWDIR)\protocol.obj \
$(MSWDIR)\url.obj \
$(MSWDIR)\http.obj \
$(MSWDIR)\ftp.obj \
$(MSWDIR)\sckfile.obj \
$(MSWDIR)\sckipc.obj
# $(MSWDIR)\odbc.obj \
# $(MSWDIR)\matrix.obj \ # $(MSWDIR)\matrix.obj \
MSWOBJS = \ MSWOBJS = \
@@ -200,8 +228,8 @@ MSWOBJS = \
$(MSWDIR)\window.obj \ $(MSWDIR)\window.obj \
$(MSWDIR)\droptgt.obj \ $(MSWDIR)\droptgt.obj \
$(MSWDIR)\dropsrc.obj \ $(MSWDIR)\dropsrc.obj \
$(MSWDIR)\dataobj.obj \
$(MSWDIR)\oleutils.obj \ $(MSWDIR)\oleutils.obj \
$(MSWDIR)\dataobj.obj \
$(MSWDIR)\uuid.obj $(MSWDIR)\uuid.obj
OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS) OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS)
@@ -212,12 +240,30 @@ wx: $(CFG) $(DUMMY).obj $(OBJECTS) $(PERIPH_TARGET) $(LIBTARGET)
all: all_libs all_execs all: all_libs all_execs
!if "$(DLL)" == "0"
$(LIBTARGET): $(DUMMY).obj $(OBJECTS) $(BASEOBJECTS) $(LIBTARGET): $(DUMMY).obj $(OBJECTS) $(BASEOBJECTS)
erase $(LIBTARGET) erase $(LIBTARGET)
tlib $(LIBTARGET) /P512 @&&! tlib $(LIBTARGET) /P512 @&&!
-+$(OBJECTS:.obj =.obj -+) -+$(BASEOBJECTS:.obj =.obj -+) -+$(PERIPH_LIBS:.lib =.lib -+) -+$(OBJECTS:.obj =.obj -+) -+$(BASEOBJECTS:.obj =.obj -+) -+$(PERIPH_LIBS:.lib =.lib -+)
! !
!else
$(LIBTARGET): $(DUMMY).obj $(OBJECTS) $(BASEOBJECTS)
erase $(LIBTARGET)
erase $(WXLIBDIR)\wx.dll
tlink32 $(LINK_FLAGS) /v @&&!
c0d32.obj $(OBJECTS)
$(WXLIBDIR)\wx
nul
$(PERIPH_LIBS) $(LIBS)
wxb32
!
implib -c $(LIBTARGET) $(WXLIBDIR)\wx.dll
!endif
dummy.obj: dummy.$(SRCSUFF) $(LOCALHEADERS) $(BASEHEADERS) $(WXDIR)\include\wx\wx.h dummy.obj: dummy.$(SRCSUFF) $(LOCALHEADERS) $(BASEHEADERS) $(WXDIR)\include\wx\wx.h
dummydll.obj: dummydll.$(SRCSUFF) $(LOCALHEADERS) $(BASEHEADERS) $(WXDIR)\include\wx\wx.h dummydll.obj: dummydll.$(SRCSUFF) $(LOCALHEADERS) $(BASEHEADERS) $(WXDIR)\include\wx\wx.h
@@ -416,6 +462,8 @@ $(MSWDIR)\docmdi.obj: $(COMMDIR)\docmdi.$(SRCSUFF)
$(MSWDIR)\dynarray.obj: $(COMMDIR)\dynarray.$(SRCSUFF) $(MSWDIR)\dynarray.obj: $(COMMDIR)\dynarray.$(SRCSUFF)
$(MSWDIR)\dynlib.obj: $(COMMDIR)\dynlib.$(SRCSUFF)
$(MSWDIR)\event.obj: $(COMMDIR)\event.$(SRCSUFF) $(MSWDIR)\event.obj: $(COMMDIR)\event.$(SRCSUFF)
$(MSWDIR)\file.obj: $(COMMDIR)\file.$(SRCSUFF) $(MSWDIR)\file.obj: $(COMMDIR)\file.$(SRCSUFF)
@@ -482,6 +530,8 @@ $(MSWDIR)\time.obj: $(COMMDIR)\time.$(SRCSUFF)
$(MSWDIR)\datstrm.obj: $(COMMDIR)\datstrm.$(SRCSUFF) $(MSWDIR)\datstrm.obj: $(COMMDIR)\datstrm.$(SRCSUFF)
$(MSWDIR)\sckstrm.obj: $(COMMDIR)\sckstrm.$(SRCSUFF)
$(MSWDIR)\mstream.obj: $(COMMDIR)\mstream.$(SRCSUFF) $(MSWDIR)\mstream.obj: $(COMMDIR)\mstream.$(SRCSUFF)
$(MSWDIR)\zstream.obj: $(COMMDIR)\zstream.$(SRCSUFF) $(MSWDIR)\zstream.obj: $(COMMDIR)\zstream.$(SRCSUFF)
@@ -490,10 +540,30 @@ $(MSWDIR)\fstream.obj: $(COMMDIR)\fstream.$(SRCSUFF)
$(MSWDIR)\stream.obj: $(COMMDIR)\stream.$(SRCSUFF) $(MSWDIR)\stream.obj: $(COMMDIR)\stream.$(SRCSUFF)
$(MSWDIR)\objstrm.obj: $(COMMDIR)\objstrm.$(SRCSUFF)
$(MSWDIR)\wincmn.obj: $(COMMDIR)\wincmn.$(SRCSUFF) $(MSWDIR)\wincmn.obj: $(COMMDIR)\wincmn.$(SRCSUFF)
$(MSWDIR)\extended.obj: $(COMMDIR)\extended.c $(MSWDIR)\extended.obj: $(COMMDIR)\extended.c
$(MSWDIR)\tokenzr.obj: $(COMMDIR)\tokenzr.$(SRCSUFF)
$(MSWDIR)\socket.obj: $(COMMDIR)\socket.$(SRCSUFF)
$(MSWDIR)\sckaddr.obj: $(COMMDIR)\sckaddr.$(SRCSUFF)
$(MSWDIR)\protocol.obj: $(COMMDIR)\protocol.$(SRCSUFF)
$(MSWDIR)\url.obj: $(COMMDIR)\url.$(SRCSUFF)
$(MSWDIR)\http.obj: $(COMMDIR)\http.$(SRCSUFF)
$(MSWDIR)\ftp.obj: $(COMMDIR)\ftp.$(SRCSUFF)
$(MSWDIR)\sckfile.obj: $(COMMDIR)\sckfile.$(SRCSUFF)
$(MSWDIR)\sckipc.obj: $(COMMDIR)\sckipc.$(SRCSUFF)
######################################################## ########################################################
# Generic objects (not always compiled, depending on # Generic objects (not always compiled, depending on
# whether platforms have native implementations) # whether platforms have native implementations)
@@ -561,6 +631,16 @@ wxxpm: $(CFG)
make -f makefile.b32 -DCFG=$(CFG) -DFINAL=$(FINAL) -DWXWIN=$(WXDIR) -DDEBUG=$(DEBUG) make -f makefile.b32 -DCFG=$(CFG) -DFINAL=$(FINAL) -DWXWIN=$(WXDIR) -DDEBUG=$(DEBUG)
cd $(WXDIR)\src\msw cd $(WXDIR)\src\msw
zlib: $(CFG)
cd $(WXDIR)\src\zlib
make -f makefile.b32 lib
cd $(WXDIR)\src\msw
clean_zlib:
cd $(WXDIR)\src\zlib
make -f makefile.b32 clean
cd $(WXDIR)\src\msw
$(CFG): makefile.b32 $(CFG): makefile.b32
copy &&! copy &&!
-H=$(WXDIR)\src\msw\wx32.csm -H=$(WXDIR)\src\msw\wx32.csm

View File

@@ -31,7 +31,6 @@
#include <wx/setup.h> #include <wx/setup.h>
#if USE_DRAG_AND_DROP
#include <wx/log.h> #include <wx/log.h>
@@ -60,6 +59,8 @@ bool IsIidFromList(REFIID riid, const IID *aIids[], size_t nCount)
return FALSE; return FALSE;
} }
#if USE_DRAG_AND_DROP
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// Debug support // Debug support
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------

View File

@@ -203,3 +203,16 @@ long wxExecute(const wxString& command, bool sync, wxProcess *handler)
return(instanceID); return(instanceID);
#endif #endif
} }
long wxExecute(char **argv, bool sync, wxProcess *handler)
{
wxString command = "";
while (*argv != NULL) {
command += *argv;
command += ' ';
argv++;
}
command.RemoveLast();
return wxExecute(command, sync, handler);
}

9
src/msw/wxb32.def Normal file
View File

@@ -0,0 +1,9 @@
LIBRARY WX
DESCRIPTION 'wxWindows DLL'
CODE EXECUTEREAD MOVEABLE LOADONCALL
DATA READWRITE