From: Guilhem Lavaux Date: Tue, 8 Sep 1998 17:19:16 +0000 (+0000) Subject: * some C++ness correction in wxStream. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/c740f49634629e47738ea73a199ea1a97640dc53 * 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 --- diff --git a/include/wx/datstrm.h b/include/wx/datstrm.h index 230d5253b6..66320d1a64 100644 --- a/include/wx/datstrm.h +++ b/include/wx/datstrm.h @@ -18,7 +18,7 @@ #include -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(); diff --git a/include/wx/debug.h b/include/wx/debug.h index 26ed65b314..816caa0324 100644 --- a/include/wx/debug.h +++ b/include/wx/debug.h @@ -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__) diff --git a/include/wx/fstream.h b/include/wx/fstream.h index dbe1abb1f8..0c8dd72296 100644 --- a/include/wx/fstream.h +++ b/include/wx/fstream.h @@ -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(); diff --git a/include/wx/intl.h b/include/wx/intl.h index 5eba6c1840..193c4cc0e2 100644 --- a/include/wx/intl.h +++ b/include/wx/intl.h @@ -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) diff --git a/include/wx/mstream.h b/include/wx/mstream.h index a07ce80ceb..2214aa58e5 100644 --- a/include/wx/mstream.h +++ b/include/wx/mstream.h @@ -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(); diff --git a/include/wx/stream.h b/include/wx/stream.h index 95422e07dd..b467990588 100644 --- a/include/wx/stream.h +++ b/include/wx/stream.h @@ -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(); diff --git a/src/common/socket.cpp b/src/common/socket.cpp index 5ab0e09d96..9375df80d8 100644 --- a/src/common/socket.cpp +++ b/src/common/socket.cpp @@ -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) { diff --git a/src/makeb32.env b/src/makeb32.env index 57e62fa081..8e318d0536 100644 --- a/src/makeb32.env +++ b/src/makeb32.env @@ -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 diff --git a/src/msw/makefile.b32 b/src/msw/makefile.b32 index 9e09253b3f..0491be8b28 100644 --- a/src/msw/makefile.b32 +++ b/src/msw/makefile.b32 @@ -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) + 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 diff --git a/src/msw/ole/oleutils.cpp b/src/msw/ole/oleutils.cpp index efec456070..a3499c7025 100644 --- a/src/msw/ole/oleutils.cpp +++ b/src/msw/ole/oleutils.cpp @@ -31,7 +31,6 @@ #include -#if USE_DRAG_AND_DROP #include @@ -60,6 +59,8 @@ bool IsIidFromList(REFIID riid, const IID *aIids[], size_t nCount) return FALSE; } +#if USE_DRAG_AND_DROP + // ---------------------------------------------------------------------------- // Debug support // ---------------------------------------------------------------------------- diff --git a/src/msw/utilsexc.cpp b/src/msw/utilsexc.cpp index cfd23a7f25..43e66153a2 100644 --- a/src/msw/utilsexc.cpp +++ b/src/msw/utilsexc.cpp @@ -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); +} diff --git a/src/msw/wxb32.def b/src/msw/wxb32.def new file mode 100644 index 0000000000..3733ab22b6 --- /dev/null +++ b/src/msw/wxb32.def @@ -0,0 +1,9 @@ +LIBRARY WX + +DESCRIPTION 'wxWindows DLL' + +CODE EXECUTEREAD MOVEABLE LOADONCALL +DATA READWRITE + + +