summaryrefslogtreecommitdiff
path: root/ace
diff options
context:
space:
mode:
Diffstat (limited to 'ace')
-rw-r--r--ace/ACE.cpp91
-rw-r--r--ace/ACE.h10
-rw-r--r--ace/README1
-rw-r--r--ace/SPIPE_Acceptor.cpp8
-rw-r--r--ace/SPIPE_Acceptor.h2
-rw-r--r--ace/config-win32-msvc2.0.h3
-rw-r--r--ace/config-win32-msvc4.x.h232
-rw-r--r--ace/config-winnt-4.0-msvc4.x.h236
8 files changed, 537 insertions, 46 deletions
diff --git a/ace/ACE.cpp b/ace/ACE.cpp
index ed045a78707..353f0ebcb0c 100644
--- a/ace/ACE.cpp
+++ b/ace/ACE.cpp
@@ -110,6 +110,7 @@ ACE::strenvdup (const char *str)
/*
Examples:
+
Source NT UNIX
===============================================================
netsvc netsvc.dll libnetsvc.so
@@ -118,15 +119,15 @@ netsvc netsvc.dll libnetsvc.so
libnetsvc.dll libnetsvc.dll libnetsvc.dll + warning
netsvc.so netsvc.so + warning libnetsvc.so
-..\../libs/netsvc ..\..\libs\netsvc.dll ../../libs/libnetsvc.so
+..\../libs/netsvc ..\..\libs\netsvc.dll ../../libs/netsvc.so
(absolute path used) (absolute path used)
*/
int
-ACE::ldfind (const char *filename,
- char *pathname,
- size_t maxlen)
+ACE::ldfind (const char filename[],
+ char pathname[],
+ size_t maxpathnamelen)
{
ACE_TRACE ("ACE::ldfind");
@@ -144,66 +145,78 @@ ACE::ldfind (const char *filename,
else
ACE_OS::strcpy (tempcopy, filename);
- // Insert canonical directory separators
+ // Insert canonical directory separators.
char *separator_ptr;
- for (separator_ptr = tempcopy; *separator_ptr != '\0'; separator_ptr++)
+ for (separator_ptr = tempcopy;
+ *separator_ptr != '\0';
+ separator_ptr++)
if (*separator_ptr == '\\'
|| *separator_ptr == ACE_DIRECTORY_SEPARATOR_CHAR)
*separator_ptr = '/';
+ int got_prefix = 0;
+
+ // Separate filename from pathname.
+
separator_ptr = ACE_OS::strrchr (tempcopy, '/');
- // Separate filename from pathname
- if (separator_ptr != NULL)
+ // This is a relative path.
+ if (separator_ptr == 0)
+ {
+ searchpathname[0] = '\0';
+ ACE_OS::strcpy (tempfilename, tempcopy);
+
+ // Note that we only try to set the prefix if we're dealing with
+ // a relative path.
+ if (ACE_OS::strlen (ACE_DLL_PREFIX) == 0
+ || ACE_OS::strncmp (tempfilename, ACE_DLL_PREFIX,
+ ACE_OS::strlen (ACE_DLL_PREFIX) == 0))
+ got_prefix = 1;
+ }
+ else // This is an absolute path.
{
ACE_OS::strcpy (tempfilename, separator_ptr + 1);
separator_ptr[1] = '\0';
ACE_OS::strcpy (searchpathname, tempcopy);
- }
- else
- {
- searchpathname[0] = '\0';
- ACE_OS::strcpy (tempfilename, tempcopy);
}
- // Determine, how the filename needs to be decorated.
+ // Determine how the filename needs to be decorated.
- int got_prefix = 0;
int got_suffix = 0;
- if (ACE_OS::strchr (tempfilename, '.') != NULL)
- got_suffix = -1;
+ // Check to see if this has an appropriate DLL suffix for the OS
+ // platform.
+ char *s = ACE_OS::strrchr (tempfilename, '.');
+ if (s != 0 && ACE_OS::strcmp (s + 1, ACE_DLL_SUFFIX))
+ got_suffix = 1;
- if (ACE_OS::strlen(ACE_DLL_PREFIX) == 0
- || (ACE_OS::strncmp(tempfilename, ACE_DLL_PREFIX,
- ACE_OS::strlen(ACE_DLL_PREFIX) == 0)))
- got_prefix = -1;
-
- // Create the properly decorated filename
+ // Create the properly decorated filename.
if (ACE_OS::strlen (tempfilename) +
- (got_prefix) ? 0 : ACE_OS::strlen(ACE_DLL_PREFIX) +
- (got_suffix) ? 0 : ACE_OS::strlen (ACE_DLL_SUFFIX) >= sizeof searchfilename)
+ got_prefix ? 0 : ACE_OS::strlen (ACE_DLL_PREFIX) +
+ got_suffix ? 0 : ACE_OS::strlen (ACE_DLL_SUFFIX) >= sizeof searchfilename)
{
errno = ENOMEM;
return -1;
}
else
::sprintf (searchfilename, "%s%s%s",
- (got_prefix) ? "" : ACE_DLL_PREFIX,
+ got_prefix ? "" : ACE_DLL_PREFIX,
tempfilename,
- (got_suffix) ? "" : ACE_DLL_SUFFIX);
+ got_suffix ? "" : ACE_DLL_SUFFIX);
- if (ACE_OS::strcmp (searchfilename + ACE_OS::strlen (searchfilename) - ACE_OS::strlen (ACE_DLL_SUFFIX),
+ if (ACE_OS::strcmp (searchfilename
+ + ACE_OS::strlen (searchfilename) - ACE_OS::strlen (ACE_DLL_SUFFIX),
ACE_DLL_SUFFIX))
ACE_ERROR ((LM_NOTICE,
"CAUTION: improper name for a shared library on this patform: %s\n",
searchfilename));
+ // Use absolute pathname if there is one.
if (ACE_OS::strlen (searchpathname) > 0)
{
- // Use absolute pathname.
- if (ACE_OS::strlen (searchfilename) + ACE_OS::strlen (searchpathname) >= maxlen)
+ if (ACE_OS::strlen (searchfilename)
+ + ACE_OS::strlen (searchpathname) >= maxpathnamelen)
{
errno = ENOMEM;
return -1;
@@ -212,7 +225,9 @@ ACE::ldfind (const char *filename,
{
// Revert to native path name separators
- for (separator_ptr = searchpathname; *separator_ptr != '\0'; separator_ptr++)
+ for (separator_ptr = searchpathname;
+ *separator_ptr != '\0';
+ separator_ptr++)
if (*separator_ptr == '/')
*separator_ptr = ACE_DIRECTORY_SEPARATOR_CHAR;
@@ -220,23 +235,25 @@ ACE::ldfind (const char *filename,
return 0;
}
}
- else
+
+ // Use relative filenames via LD_LIBRARY_PATH or PATH (depending on
+ // OS platform).
+ else
{
- // Using LD_LIBRARY_PATH
char *ld_path = ACE_OS::getenv (ACE_LD_SEARCH_PATH);
if (ld_path != 0 && (ld_path = ACE_OS::strdup (ld_path)) != 0)
{
// Look at each dynamic lib directory in the search path.
- char *path_entry = ACE_OS::strtok (ld_path,
- ACE_LD_SEARCH_PATH_SEPARATOR_STR);
+ char *path_entry = ACE_OS::strtok
+ (ld_path, ACE_LD_SEARCH_PATH_SEPARATOR_STR);
int result = 0;
while (path_entry != 0)
{
- if (ACE_OS::strlen (path_entry) + 1 + ACE_OS::strlen
- (searchfilename) >= maxlen)
+ if (ACE_OS::strlen (path_entry)
+ + 1 + ACE_OS::strlen (searchfilename) >= maxpathnamelen)
{
errno = ENOMEM;
result = -1;
diff --git a/ace/ACE.h b/ace/ACE.h
index 0263b92fded..3bd4202f45f 100644
--- a/ace/ACE.h
+++ b/ace/ACE.h
@@ -250,9 +250,13 @@ public:
static int ldfind (const char *filename,
char *pathname,
size_t maxlen);
- // Finds the file <filename> either using absolute path or using
- // ACE_LD_SEARCH_PATH (e.g., $LD_LIBRARY_PATH on UNIX or $PATH on
- // Win32).
+ // Finds the file <filename> either using an absolute path or using
+ // a relative path in conjunction with ACE_LD_SEARCH_PATH (e.g.,
+ // $LD_LIBRARY_PATH on UNIX or $PATH on Win32). This function will
+ // add appropriate suffix (e.g., .dll on Win32 or .so on UNIX)
+ // according to the OS platform. In addition, if a relative path is
+ // used, this function will prefix the appropriate prefix (e.g.,
+ // "lib" on UNIX and "" on Win32).
static FILE *ldopen (const char *filename, const char *type);
// Uses <ldopen> to locate and open the appropriate <filename> and
diff --git a/ace/README b/ace/README
index a5be0ad87dc..e08ed010e38 100644
--- a/ace/README
+++ b/ace/README
@@ -25,6 +25,7 @@ ACE_HAS_BROKEN_SENDMSG OS/compiler omits the const from the sendmsg() prototyp
ACE_HAS_BROKEN_SETRLIMIT OS/compiler omits the const from the rlimit parameter in the setrlimit() prototype.
ACE_HAS_BROKEN_WRITEV OS/compiler omits the const from the iovec parameter in the writev() prototype.
ACE_HAS_BSTRING Platform has <bstring.h> (which contains bzero() prototype)
+ACE_HAS_CANCEL_IO Platform supports the Win32 CancelIO() function (WinNT 4.0 and beyond).
ACE_HAS_CHARPTR_DL OS/platform uses char * for dlopen/dlsym args, rather than const char *.
ACE_HAS_CHARPTR_SOCKOPT OS/platform uses char * for sockopt, rather than const char *
ACE_HAS_COMPLEX_LOCK Platform supports non-standard readers/writer locks...
diff --git a/ace/SPIPE_Acceptor.cpp b/ace/SPIPE_Acceptor.cpp
index fddb16a2b8d..e89fdcdab6b 100644
--- a/ace/SPIPE_Acceptor.cpp
+++ b/ace/SPIPE_Acceptor.cpp
@@ -75,11 +75,11 @@ ACE_SPIPE_Acceptor::create_new_instance (int perms)
// process is reused with a new client process, ::ConnectNamedPipe()
// would fail.
- ACE_UNUSED_ARG(perms);
- ACE_TRACE ("ACE_SPIPE_Acceptor::create_new_instance");
+ ACE_UNUSED_ARG(perms);
+ ACE_TRACE ("ACE_SPIPE_Acceptor::create_new_instance");
- // Create a new instance of the named pipe
- ACE_HANDLE handle = ::CreateNamedPipe (this->local_addr_.get_path_name (),
+ // Create a new instance of the named pipe
+ ACE_HANDLE handle = ::CreateNamedPipe (this->local_addr_.get_path_name (),
PIPE_ACCESS_DUPLEX |
FILE_FLAG_OVERLAPPED,
PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE,
diff --git a/ace/SPIPE_Acceptor.h b/ace/SPIPE_Acceptor.h
index 9ebc7847589..4035a6492e5 100644
--- a/ace/SPIPE_Acceptor.h
+++ b/ace/SPIPE_Acceptor.h
@@ -69,8 +69,8 @@ public:
ACE_ALLOC_HOOK_DECLARE;
// Declare the dynamic allocation hooks.
-private:
+private:
int create_new_instance (int perms = 0);
// Create a new instance of an SPIPE.
};
diff --git a/ace/config-win32-msvc2.0.h b/ace/config-win32-msvc2.0.h
index e68ead2d81f..1ea7f514dde 100644
--- a/ace/config-win32-msvc2.0.h
+++ b/ace/config-win32-msvc2.0.h
@@ -2,7 +2,8 @@
// $Id$
// The following configuration file is designed to work for Windows NT
-// platforms using the Microsoft Visual C++ 2.0 compiler.
+// 3.51 and Win95 platforms using the Microsoft Visual C++ 2.0
+// compiler.
#if !defined (ACE_CONFIG_H)
#define ACE_CONFIG_H
diff --git a/ace/config-win32-msvc4.x.h b/ace/config-win32-msvc4.x.h
new file mode 100644
index 00000000000..433f23d0e0f
--- /dev/null
+++ b/ace/config-win32-msvc4.x.h
@@ -0,0 +1,232 @@
+/* -*- C++ -*- */
+// $Id$
+
+// The following configuration file is designed to work for Windows NT
+// 3.51 and Win95 platforms using the Microsoft Visual C++ 4.x
+// compiler.
+
+#if !defined (ACE_CONFIG_H)
+#define ACE_CONFIG_H
+
+// We are using STL's min and max (in algobase.h). Therefore the
+// macros in window.h are extra
+#if !defined NOMINMAX
+#define NOMINMAX
+#endif /* NOMINMAX */
+
+#if defined (_MSC_VER)
+// "C4355: 'this' : used in base member initializer list"
+#pragma warning(disable:4355) /* disable C4514 warning */
+// #pragma warning(default:4355) // use this to reenable, if desired
+
+#pragma warning(disable:4201) /* winnt.h uses nameless structs */
+#endif /* _MSC_VER */
+
+// While digging the MSVC 4.0 include files, I found how to disable
+// MSVC warnings: --Amos Shapira
+
+// Comment this out for now since it will break existing application
+// code.
+// #define ACE_HAS_STRICT
+
+// <windows.h> and MFC's <afxwin.h> are mutually
+// incompatible. <windows.h> is brain-dead about MFC; it doesn't check
+// to see whether MFC stuff is anticipated or already in progress
+// before doing its thing. ACE needs (practically always) <winsock.h>,
+// and winsock in turn needs support either from windows.h or from
+// afxwin.h. One or the other, not both.
+//
+// The MSVC++ V4.0 environment defines preprocessor macros that
+// indicate the programmer has chosen something from the
+// Build-->Settings-->General-->MFC combo-box. <afxwin.h> defines a
+// macro itself to protect against double inclusion. We'll take
+// advantage of all this to select the proper support for winsock. -
+// trl 26-July-1996
+
+// This is necessary since MFC users apparently can't #include
+// <windows.h> directly.
+#if defined (_AFXDLL) || defined (_WINDLL)
+#include /**/ <afxwin.h> /* He is doing MFC */
+ // Windows.h will be included via afxwin.h->afx.h->afx_ver_.h->afxv_w32.h
+ // #define _INC_WINDOWS // Prevent winsock.h from including windows.h
+#endif
+
+#if !defined (_INC_WINDOWS) /* Already include windows.h ? */
+ // Must define strict before including windows.h !
+#if defined (ACE_HAS_STRICT)
+#define STRICT 1
+#endif /* ACE_HAS_STRICT */
+
+#if !defined (WIN32_LEAN_AND_MEAN)
+#define WIN32_LEAN_AND_MEAN
+#endif /* WIN32_LEAN_AND_MEAN */
+
+#if defined (_UNICODE)
+#if !defined (UNICODE)
+#define UNICODE /* UNICODE is used by Windows headers */
+#endif /* UNICODE */
+#endif /* _UNICODE */
+
+#if defined (UNICODE)
+#if !defined (_UNICODE)
+#define _UNICODE /* _UNICODE is used by C-runtime/MFC headers */
+#endif /* _UNICODE */
+#endif /* UNICODE */
+#endif /* !defined (_INC_INWDOWS) */
+
+// Define the following macro if you're compiling with WinSock 2.0.
+// #define ACE_HAS_WINSOCK2
+
+#if defined (ACE_HAS_WINSOCK2)
+#if !defined (_WINSOCK2API_)
+#include /**/ <winsock2.h> /* will also include windows.h, if not present */
+#if defined (_MSC_VER)
+#pragma comment(lib, "ws2_32.lib")
+#endif /* _MSC_VER */
+#endif /* _WINSOCK2API */
+
+#define ACE_WSOCK_VERSION 2, 0
+#else
+#if !defined (_WINSOCKAPI_)
+#include /**/ <winsock.h> /* will also include windows.h, if not present */
+
+#if defined (_MSC_VER)
+#pragma comment(lib, "wsock32.lib")
+#endif /* _MSC_VER */
+#endif /* _WINSOCKAPI */
+
+// Version 1.1 of WinSock
+#define ACE_WSOCK_VERSION 1, 1
+#endif /* ACE_HAS_WINSOCK2 */
+
+#if defined (_MSC_VER)
+#pragma warning(default: 4201) /* winnt.h uses nameless structs */
+#endif /* _MSC_VER */
+
+#define ACE_HAS_UNICODE
+//#define ACE_HAS_STANDARD_CPP_LIBRARY
+
+// Uncomment these if you want to integrate ACE and Orbix in Win32.
+// #define ACE_HAS_ORBIX
+// #define ACE_HAS_MT_ORBIX
+
+#define ACE_HAS_TEMPLATE_TYPEDEFS
+#define ACE_LACKS_SBRK
+#define ACE_LACKS_UTSNAME_T
+#define ACE_LACKS_SEMBUF_T
+#define ACE_LACKS_MSGBUF_T
+#define ACE_LACKS_SYSV_SHMEM
+
+// Build as as a DLL. Zap this line if you want to build a static
+// lib.
+#define ACE_HAS_DLL
+
+// Compiler/platform correctly calls init()/fini() for shared
+// libraries. - applied for DLLs ?
+//define ACE_HAS_AUTOMATIC_INIT_FINI
+
+// Compiler doesn't support static data member templates.
+#define ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES
+
+#define ACE_LACKS_RECVMSG
+#define ACE_LACKS_SENDMSG
+
+// Platform supports POSIX O_NONBLOCK semantics.
+//define ACE_HAS_POSIX_NONBLOCK
+
+#define ACE_LACKS_MODE_MASKS
+#define ACE_LACKS_STRRECVFD
+
+// Compiler/platform has correctly prototyped header files.
+#define ACE_HAS_CPLUSPLUS_HEADERS
+
+// Platform supports IP multicast
+#define ACE_HAS_IP_MULTICAST
+
+// Sockets may be called in multi-threaded programs.
+#define ACE_HAS_MT_SAFE_SOCKETS
+
+// Platform contains <poll.h>.
+//define ACE_HAS_POLL
+
+// Platform supports POSIX timers via timestruc_t.
+//define ACE_HAS_POSIX_TIME
+
+// Platform supports the /proc file system.
+//define ACE_HAS_PROC_FS
+
+// Platform supports the rusage struct.
+#define ACE_HAS_GETRUSAGE
+
+// Compiler/platform supports strerror ().
+#define ACE_HAS_STRERROR
+
+// Andreas Ueltschi tells me this is a good thing...
+#define ACE_HAS_SVR5_GETTIMEOFDAY
+
+// Compiler/platform supports poll().
+//define ACE_HAS_SVR4_POLL
+
+// Compiler/platform supports SVR4 signal typedef.
+//define ACE_HAS_SVR4_SIGNAL_T
+
+// Platform provides <sys/filio.h> header.
+//define ACE_HAS_SYS_FILIO_H
+
+// Compiler/platform supports sys_siglist array.
+//define ACE_HAS_SYS_SIGLIST
+
+/* Turn off the following four defines if you want to disable threading. */
+// Compile using multi-thread libraries.
+#define ACE_MT_SAFE
+
+// Platform supports threads.
+#define ACE_HAS_THREADS
+
+// Platform supports Windows32 threads.
+#define ACE_HAS_WTHREADS
+
+// Compiler/platform has thread-specific storage
+#define ACE_HAS_THREAD_SPECIFIC_STORAGE
+
+#define ACE_WIN32
+#define ACE_HAS_TEMPLATE_INSTANTIATION
+
+//#define ACE_HAS_ALLOC_HOOKS
+#define ACE_TEMPLATES_REQUIRE_SOURCE
+
+// Platform supports ACE_TLI timod STREAMS module.
+//define ACE_HAS_TIMOD_H
+
+// Platform supports ACE_TLI tiuser header.
+//define ACE_HAS_TIUSER_H
+
+// Platform provides ACE_TLI function prototypes.
+// For Win32, this is not really true, but saves a lot of hassle!
+#define ACE_HAS_TLI_PROTOTYPES
+#define ACE_HAS_GNU_CSTRING_H
+// Platform supports ACE_TLI.
+//define ACE_HAS_TLI
+
+// Turns off the tracing feature.
+#if !defined (ACE_NTRACE)
+#define ACE_NTRACE 1
+#endif /* ACE_NTRACE */
+// #define ACE_NLOGGING
+
+// Defines the page size of the system.
+#define ACE_PAGE_SIZE 4096
+
+// I'm pretty sure NT lacks these
+#define ACE_LACKS_UNIX_DOMAIN_SOCKETS
+
+// Windows NT needs readv() and writev()
+#define ACE_NEEDS_WRITEV
+#define ACE_NEEDS_READV
+
+// Compiler/Platform supports the "using" keyword.
+#define ACE_HAS_USING_KEYWORD
+
+#define ACE_LACKS_COND_T
+#define ACE_LACKS_RWLOCK_T
+#endif /* ACE_CONFIG_H */
diff --git a/ace/config-winnt-4.0-msvc4.x.h b/ace/config-winnt-4.0-msvc4.x.h
new file mode 100644
index 00000000000..97625039c60
--- /dev/null
+++ b/ace/config-winnt-4.0-msvc4.x.h
@@ -0,0 +1,236 @@
+/* -*- C++ -*- */
+// $Id$
+
+// The following configuration file is designed to work for Windows NT
+// 4.0 platforms using the Microsoft Visual C++ 4.x compiler.
+
+#if !defined (ACE_CONFIG_H)
+#define ACE_CONFIG_H
+
+// We are using STL's min and max (in algobase.h). Therefore the
+// macros in window.h are extra
+#if !defined NOMINMAX
+#define NOMINMAX
+#endif /* NOMINMAX */
+
+#if defined (_MSC_VER)
+// "C4355: 'this' : used in base member initializer list"
+#pragma warning(disable:4355) /* disable C4514 warning */
+// #pragma warning(default:4355) // use this to reenable, if desired
+
+#pragma warning(disable:4201) /* winnt.h uses nameless structs */
+#endif /* _MSC_VER */
+
+// While digging the MSVC 4.0 include files, I found how to disable
+// MSVC warnings: --Amos Shapira
+
+// Comment this out for now since it will break existing application
+// code.
+// #define ACE_HAS_STRICT
+
+// <windows.h> and MFC's <afxwin.h> are mutually
+// incompatible. <windows.h> is brain-dead about MFC; it doesn't check
+// to see whether MFC stuff is anticipated or already in progress
+// before doing its thing. ACE needs (practically always) <winsock.h>,
+// and winsock in turn needs support either from windows.h or from
+// afxwin.h. One or the other, not both.
+//
+// The MSVC++ V4.0 environment defines preprocessor macros that
+// indicate the programmer has chosen something from the
+// Build-->Settings-->General-->MFC combo-box. <afxwin.h> defines a
+// macro itself to protect against double inclusion. We'll take
+// advantage of all this to select the proper support for winsock. -
+// trl 26-July-1996
+
+// This is necessary since MFC users apparently can't #include
+// <windows.h> directly.
+#if defined (_AFXDLL) || defined (_WINDLL)
+#include /**/ <afxwin.h> /* He is doing MFC */
+ // Windows.h will be included via afxwin.h->afx.h->afx_ver_.h->afxv_w32.h
+ // #define _INC_WINDOWS // Prevent winsock.h from including windows.h
+#endif
+
+#if !defined (_INC_WINDOWS) /* Already include windows.h ? */
+ // Must define strict before including windows.h !
+#if defined (ACE_HAS_STRICT)
+#define STRICT 1
+#endif /* ACE_HAS_STRICT */
+
+#if !defined (WIN32_LEAN_AND_MEAN)
+#define WIN32_LEAN_AND_MEAN
+#endif /* WIN32_LEAN_AND_MEAN */
+
+#if defined (_UNICODE)
+#if !defined (UNICODE)
+#define UNICODE /* UNICODE is used by Windows headers */
+#endif /* UNICODE */
+#endif /* _UNICODE */
+
+#if defined (UNICODE)
+#if !defined (_UNICODE)
+#define _UNICODE /* _UNICODE is used by C-runtime/MFC headers */
+#endif /* _UNICODE */
+#endif /* UNICODE */
+#endif /* !defined (_INC_INWDOWS) */
+
+// Define the following macro if you're compiling with WinSock 2.0.
+// #define ACE_HAS_WINSOCK2
+
+#if defined (ACE_HAS_WINSOCK2)
+#if !defined (_WINSOCK2API_)
+#include /**/ <winsock2.h> /* will also include windows.h, if not present */
+#if defined (_MSC_VER)
+#pragma comment(lib, "ws2_32.lib")
+#endif /* _MSC_VER */
+#endif /* _WINSOCK2API */
+
+#define ACE_WSOCK_VERSION 2, 0
+#else
+#if !defined (_WINSOCKAPI_)
+#include /**/ <winsock.h> /* will also include windows.h, if not present */
+
+#if defined (_MSC_VER)
+#pragma comment(lib, "wsock32.lib")
+#endif /* _MSC_VER */
+#endif /* _WINSOCKAPI */
+
+// Version 1.1 of WinSock
+#define ACE_WSOCK_VERSION 1, 1
+#endif /* ACE_HAS_WINSOCK2 */
+
+#if defined (_MSC_VER)
+#pragma warning(default: 4201) /* winnt.h uses nameless structs */
+#endif /* _MSC_VER */
+
+#define ACE_HAS_UNICODE
+//#define ACE_HAS_STANDARD_CPP_LIBRARY
+
+// Uncomment these if you want to integrate ACE and Orbix in Win32.
+// #define ACE_HAS_ORBIX
+// #define ACE_HAS_MT_ORBIX
+
+#define ACE_HAS_TEMPLATE_TYPEDEFS
+#define ACE_LACKS_SBRK
+#define ACE_LACKS_UTSNAME_T
+#define ACE_LACKS_SEMBUF_T
+#define ACE_LACKS_MSGBUF_T
+#define ACE_LACKS_SYSV_SHMEM
+
+// Build as as a DLL. Zap this line if you want to build a static
+// lib.
+#define ACE_HAS_DLL
+
+// Compiler/platform correctly calls init()/fini() for shared
+// libraries. - applied for DLLs ?
+//define ACE_HAS_AUTOMATIC_INIT_FINI
+
+// Compiler doesn't support static data member templates.
+#define ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES
+
+#define ACE_LACKS_RECVMSG
+#define ACE_LACKS_SENDMSG
+
+// Platform supports POSIX O_NONBLOCK semantics.
+//define ACE_HAS_POSIX_NONBLOCK
+
+#define ACE_LACKS_MODE_MASKS
+#define ACE_LACKS_STRRECVFD
+
+// Compiler/platform has correctly prototyped header files.
+#define ACE_HAS_CPLUSPLUS_HEADERS
+
+// Platform supports IP multicast
+#define ACE_HAS_IP_MULTICAST
+
+// Sockets may be called in multi-threaded programs.
+#define ACE_HAS_MT_SAFE_SOCKETS
+
+// Platform contains <poll.h>.
+//define ACE_HAS_POLL
+
+// Platform supports POSIX timers via timestruc_t.
+//define ACE_HAS_POSIX_TIME
+
+// Platform supports the /proc file system.
+//define ACE_HAS_PROC_FS
+
+// Platform supports the rusage struct.
+#define ACE_HAS_GETRUSAGE
+
+// Compiler/platform supports strerror ().
+#define ACE_HAS_STRERROR
+
+// Andreas Ueltschi tells me this is a good thing...
+#define ACE_HAS_SVR5_GETTIMEOFDAY
+
+// Compiler/platform supports poll().
+//define ACE_HAS_SVR4_POLL
+
+// Compiler/platform supports SVR4 signal typedef.
+//define ACE_HAS_SVR4_SIGNAL_T
+
+// Platform provides <sys/filio.h> header.
+//define ACE_HAS_SYS_FILIO_H
+
+// Compiler/platform supports sys_siglist array.
+//define ACE_HAS_SYS_SIGLIST
+
+/* Turn off the following four defines if you want to disable threading. */
+// Compile using multi-thread libraries.
+#define ACE_MT_SAFE
+
+// Platform supports threads.
+#define ACE_HAS_THREADS
+
+// Platform supports Windows32 threads.
+#define ACE_HAS_WTHREADS
+
+// Compiler/platform has thread-specific storage
+#define ACE_HAS_THREAD_SPECIFIC_STORAGE
+
+#define ACE_WIN32
+#define ACE_HAS_TEMPLATE_INSTANTIATION
+
+//#define ACE_HAS_ALLOC_HOOKS
+#define ACE_TEMPLATES_REQUIRE_SOURCE
+
+// Platform supports ACE_TLI timod STREAMS module.
+//define ACE_HAS_TIMOD_H
+
+// Platform supports ACE_TLI tiuser header.
+//define ACE_HAS_TIUSER_H
+
+// Platform provides ACE_TLI function prototypes.
+// For Win32, this is not really true, but saves a lot of hassle!
+#define ACE_HAS_TLI_PROTOTYPES
+#define ACE_HAS_GNU_CSTRING_H
+// Platform supports ACE_TLI.
+//define ACE_HAS_TLI
+
+// Turns off the tracing feature.
+#if !defined (ACE_NTRACE)
+#define ACE_NTRACE 1
+#endif /* ACE_NTRACE */
+// #define ACE_NLOGGING
+
+// Defines the page size of the system.
+#define ACE_PAGE_SIZE 4096
+
+// I'm pretty sure NT lacks these
+#define ACE_LACKS_UNIX_DOMAIN_SOCKETS
+
+// Windows NT needs readv() and writev()
+#define ACE_NEEDS_WRITEV
+#define ACE_NEEDS_READV
+
+// Compiler/Platform supports the "using" keyword.
+#define ACE_HAS_USING_KEYWORD
+
+#define ACE_LACKS_COND_T
+#define ACE_LACKS_RWLOCK_T
+
+// #define ACE_HAS_WIN32_TRYLOCK
+// #define ACE_HAS_SIGNAL_OBJECT_AND_WAIT
+// #define ACE_HAS_CANCEL_IO
+
+#endif /* ACE_CONFIG_H */