* 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>
class wxDataInputStream: virtual public wxFilterInputStream {
class wxDataInputStream: public virtual wxFilterInputStream {
public:
wxDataInputStream(wxInputStream& s);
virtual ~wxDataInputStream();
@@ -31,7 +31,7 @@ public:
wxString ReadString();
};
class wxDataOutputStream: virtual public wxFilterOutputStream {
class wxDataOutputStream: public virtual wxFilterOutputStream {
public:
wxDataOutputStream(wxOutputStream& s);
virtual ~wxDataOutputStream();

View File

@@ -51,7 +51,7 @@
@param szFile and nLine - file name and line number of the ASSERT
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
#define wxASSERT(cond) if ( !(cond) ) wxOnAssert(__FILE__, __LINE__)

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -17,9 +17,44 @@ DEBUG_FLAGS= -v -DWXDEBUG=1 -D__WXDEBUG__ -DUSE_DEFINE
OPT = -O2
DEBUG_FLAGS = -DUSE_DEFINE
!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
SRCSUFF = cpp

View File

@@ -19,6 +19,12 @@
!endif
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
# 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)
!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
!else
DUMMY=dummydll
LIBS= cw32 import32 ole2w32
!endif
LIBTARGET=$(WXLIB)
GENDIR=..\generic
COMMDIR=..\common
@@ -89,7 +105,6 @@ COMMONOBJS = \
$(MSWDIR)\memory.obj \
$(MSWDIR)\module.obj \
$(MSWDIR)\object.obj \
$(MSWDIR)\odbc.obj \
$(MSWDIR)\postscrp.obj \
$(MSWDIR)\prntbase.obj \
$(MSWDIR)\resource.obj \
@@ -112,9 +127,22 @@ COMMONOBJS = \
$(MSWDIR)\mstream.obj \
$(MSWDIR)\zstream.obj \
$(MSWDIR)\datstrm.obj \
$(MSWDIR)\sckstrm.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 \
MSWOBJS = \
@@ -200,8 +228,8 @@ MSWOBJS = \
$(MSWDIR)\window.obj \
$(MSWDIR)\droptgt.obj \
$(MSWDIR)\dropsrc.obj \
$(MSWDIR)\dataobj.obj \
$(MSWDIR)\oleutils.obj \
$(MSWDIR)\dataobj.obj \
$(MSWDIR)\uuid.obj
OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS)
@@ -212,12 +240,30 @@ wx: $(CFG) $(DUMMY).obj $(OBJECTS) $(PERIPH_TARGET) $(LIBTARGET)
all: all_libs all_execs
!if "$(DLL)" == "0"
$(LIBTARGET): $(DUMMY).obj $(OBJECTS) $(BASEOBJECTS)
erase $(LIBTARGET)
tlib $(LIBTARGET) /P512 @&&!
-+$(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
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)\dynlib.obj: $(COMMDIR)\dynlib.$(SRCSUFF)
$(MSWDIR)\event.obj: $(COMMDIR)\event.$(SRCSUFF)
$(MSWDIR)\file.obj: $(COMMDIR)\file.$(SRCSUFF)
@@ -482,6 +530,8 @@ $(MSWDIR)\time.obj: $(COMMDIR)\time.$(SRCSUFF)
$(MSWDIR)\datstrm.obj: $(COMMDIR)\datstrm.$(SRCSUFF)
$(MSWDIR)\sckstrm.obj: $(COMMDIR)\sckstrm.$(SRCSUFF)
$(MSWDIR)\mstream.obj: $(COMMDIR)\mstream.$(SRCSUFF)
$(MSWDIR)\zstream.obj: $(COMMDIR)\zstream.$(SRCSUFF)
@@ -490,10 +540,30 @@ $(MSWDIR)\fstream.obj: $(COMMDIR)\fstream.$(SRCSUFF)
$(MSWDIR)\stream.obj: $(COMMDIR)\stream.$(SRCSUFF)
$(MSWDIR)\objstrm.obj: $(COMMDIR)\objstrm.$(SRCSUFF)
$(MSWDIR)\wincmn.obj: $(COMMDIR)\wincmn.$(SRCSUFF)
$(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
# whether platforms have native implementations)
@@ -561,6 +631,16 @@ wxxpm: $(CFG)
make -f makefile.b32 -DCFG=$(CFG) -DFINAL=$(FINAL) -DWXWIN=$(WXDIR) -DDEBUG=$(DEBUG)
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
copy &&!
-H=$(WXDIR)\src\msw\wx32.csm

View File

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

View File

@@ -203,3 +203,16 @@ long wxExecute(const wxString& command, bool sync, wxProcess *handler)
return(instanceID);
#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