Guenter Obiltschnig 19 лет назад
Родитель
Сommit
cf80f255be
36 измененных файлов с 521 добавлено и 82 удалено
  1. 13 4
      CHANGELOG
  2. 5 2
      Foundation/Foundation_vs71.vcproj
  3. 6 2
      Foundation/Foundation_vs80.vcproj
  4. 6 2
      Foundation/include/Poco/Config.h
  5. 23 1
      Foundation/include/Poco/Foundation.h
  6. 2 2
      Foundation/include/Poco/Platform_WIN32.h
  7. 2 2
      Foundation/include/Poco/UTF8String.h
  8. 3 3
      Foundation/src/Debugger.cpp
  9. 6 6
      Foundation/src/Environment_WIN32.cpp
  10. 4 4
      Foundation/src/EventLogChannel.cpp
  11. 13 9
      Foundation/src/File_WIN32.cpp
  12. 7 3
      Foundation/src/File_WIN32U.cpp
  13. 2 2
      Foundation/src/LogFile_WIN32.cpp
  14. 2 2
      Foundation/src/NamedEvent_WIN32.cpp
  15. 2 2
      Foundation/src/NamedMutex_WIN32.cpp
  16. 4 4
      Foundation/src/Path_WIN32.cpp
  17. 2 2
      Foundation/src/Process_WIN32.cpp
  18. 2 2
      Foundation/src/SharedLibrary_WIN32.cpp
  19. 37 3
      NEWS
  20. 2 2
      Net/Net_vs71.vcproj
  21. 3 3
      Net/Net_vs80.vcproj
  22. 23 1
      Net/include/Poco/Net/Net.h
  23. 2 2
      Net/src/StreamSocketImpl.cpp
  24. 10 0
      NetSSL_OpenSSL/NetSSL_OpenSSL_vs71.sln
  25. 101 0
      NetSSL_OpenSSL/NetSSL_OpenSSL_vs71.vcproj
  26. 10 0
      NetSSL_OpenSSL/NetSSL_OpenSSL_vs80.sln
  27. 146 0
      NetSSL_OpenSSL/NetSSL_OpenSSL_vs80.vcproj
  28. 23 1
      NetSSL_OpenSSL/include/Poco/Net/NetSSL.h
  29. 2 2
      Util/Util_vs71.vcproj
  30. 3 3
      Util/Util_vs80.vcproj
  31. 23 1
      Util/include/Poco/Util/Util.h
  32. 2 2
      Util/src/Application.cpp
  33. 3 3
      Util/src/WinRegistryKey.cpp
  34. 2 2
      XML/XML_vs71.vcproj
  35. 2 2
      XML/XML_vs80.vcproj
  36. 23 1
      XML/include/Poco/XML/XML.h

+ 13 - 4
CHANGELOG

@@ -1,7 +1,7 @@
 This is the changelog file for the POCO C++ Libraries.
 
-Release 1.3-20070504 (2007-05-04)
-=================================
+Release 1.3.0 (2007-05-07)
+==========================
 
 - added HashMap, HashSet classes
 - the HashFunction class template has been changed in an incompatible
@@ -37,7 +37,7 @@ Release 1.3-20070504 (2007-05-04)
 - added another constructor to LocalDateTime
 - POCO_WIN32_UTF8 is ignored on non-Windows platforms
 - fixed a timeout bug (with NetSSL) in HTTPSession
-- AsyncChannel is automatically opened with first log()\
+- AsyncChannel is automatically opened with first log()
 - minor fix to NotificationQueue sample (reported by Laszlo Keresztfalvi)
 - added File::canExecute() and File::setExecutable()
 - added SharedMemory class to Foundation
@@ -85,6 +85,15 @@ Release 1.3-20070504 (2007-05-04)
   for UTF-8 encoded strings.
 - added UnWindows.h header file, replaced all #include <windows.h> with #include "Poco/UnWindows.h".
   See the Poco/UnWindows.h header file for a rationale and explanations.
+- fixed SF# 1713820: StreamSocketImpl::sendBytes sends too many bytes
+- File::copyTo(): on Windows, the copy now always has the read-only flag reset, to be consistent
+  with other platforms.
+- With Microsoft Visual C++, the necessary POCO libraries are now implicitly linked when
+  the corresponding header files are included (#pragma comment(lib, "PocoXYZ.lib") is used).
+  To disable this, compile POCO with the preprocessor symbol POCO_NO_AUTOMATIC_LIBS #define'd
+  (see Poco/Foundation.h and Poco/Config.h).
+- The Visual Studio project files for the POCO libraries now include configurations
+  for building static libraries.
   
 
 Release 1.2.9 (2007-02-26)
@@ -731,4 +740,4 @@ building the libraries.
 
 
 --
-$Id: //poco/Main/dist/CHANGELOG#57 $
+$Id: //poco/Main/dist/CHANGELOG#60 $

+ 5 - 2
Foundation/Foundation_vs71.vcproj

@@ -146,7 +146,7 @@
 				Name="VCCLCompilerTool"
 				Optimization="0"
 				AdditionalIncludeDirectories=".\include"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;PCRE_STATIC"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;Foundation_EXPORTS;POCO_STATIC;PCRE_STATIC"
 				StringPooling="TRUE"
 				MinimalRebuild="TRUE"
 				BasicRuntimeChecks="3"
@@ -199,7 +199,7 @@
 				OmitFramePointers="TRUE"
 				OptimizeForProcessor="3"
 				AdditionalIncludeDirectories=".\include"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC;PCRE_STATIC"
+				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;Foundation_EXPORTS;POCO_STATIC;PCRE_STATIC"
 				GeneratePreprocessedFile="0"
 				KeepComments="FALSE"
 				StringPooling="TRUE"
@@ -686,6 +686,9 @@
 				<File
 					RelativePath=".\include\Poco\Types.h">
 				</File>
+				<File
+					RelativePath=".\include\Poco\UnWindows.h">
+				</File>
 				<File
 					RelativePath=".\include\Poco\Void.h">
 				</File>

+ 6 - 2
Foundation/Foundation_vs80.vcproj

@@ -230,7 +230,7 @@
 				FavorSizeOrSpeed="1"
 				OmitFramePointers="true"
 				AdditionalIncludeDirectories=".\include"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC;PCRE_STATIC"
+				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;Foundation_EXPORTS;POCO_STATIC;PCRE_STATIC"
 				GeneratePreprocessedFile="0"
 				KeepComments="false"
 				StringPooling="true"
@@ -301,7 +301,7 @@
 				Name="VCCLCompilerTool"
 				Optimization="0"
 				AdditionalIncludeDirectories=".\include"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;PCRE_STATIC"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;Foundation_EXPORTS;POCO_STATIC;PCRE_STATIC"
 				StringPooling="true"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
@@ -939,6 +939,10 @@
 					RelativePath=".\include\Poco\Types.h"
 					>
 				</File>
+				<File
+					RelativePath=".\include\Poco\UnWindows.h"
+					>
+				</File>
 				<File
 					RelativePath=".\include\Poco\Void.h"
 					>

+ 6 - 2
Foundation/include/Poco/Config.h

@@ -1,7 +1,7 @@
 //
 // Config.h
 //
-// $Id: //poco/Main/Foundation/include/Poco/Config.h#4 $
+// $Id: //poco/Main/Foundation/include/Poco/Config.h#5 $
 //
 // Library: Foundation
 // Package: Core
@@ -40,10 +40,14 @@
 #define Foundation_Config_INCLUDED
 
 
-// Define to enable Windows Unicode (UTF-8) support.
+// Define to enable Windows Unicode (UTF-8) support
 #define POCO_WIN32_UTF8
 
 
+// Define to disable implicit linking
+// #define POCO_NO_AUTOMATIC_LIBS
+
+
 // Define to disable FPEnvironment support
 // #define POCO_NO_FPENVIRONMENT
 

+ 23 - 1
Foundation/include/Poco/Foundation.h

@@ -1,7 +1,7 @@
 //
 // Foundation.h
 //
-// $Id: //poco/Main/Foundation/include/Poco/Foundation.h#8 $
+// $Id: //poco/Main/Foundation/include/Poco/Foundation.h#9 $
 //
 // Library: Foundation
 // Package: Core
@@ -80,6 +80,28 @@
 #endif
 
 
+//
+// Automatically link Foundation library.
+//
+#if defined(_MSC_VER)
+	#if !defined(POCO_NO_AUTOMATIC_LIBS) && !defined(Foundation_EXPORTS)
+		#if defined(POCO_DLL)
+			#if defined(_DEBUG)
+				#pragma comment(lib, "PocoFoundationd.lib")
+			#else
+				#pragma comment(lib, "PocoFoundation.lib")
+			#endif
+		#else
+			#if defined(_DEBUG)
+				#pragma comment(lib, "PocoFoundationmtd.lib")
+			#else
+				#pragma comment(lib, "PocoFoundationmt.lib")
+			#endif
+		#endif
+	#endif
+#endif
+
+
 //
 // Include platform-specific definitions
 //

+ 2 - 2
Foundation/include/Poco/Platform_WIN32.h

@@ -1,7 +1,7 @@
 //
 // Platform_WIN32.h
 //
-// $Id: //poco/Main/Foundation/include/Poco/Platform_WIN32.h#7 $
+// $Id: //poco/Main/Foundation/include/Poco/Platform_WIN32.h#8 $
 //
 // Library: Foundation
 // Package: Core
@@ -67,7 +67,7 @@
 
 // Unicode Support
 #if defined(UNICODE) && !defined(POCO_WIN32_UTF8)
-#define POCO_WIN32_UTF8
+	#define POCO_WIN32_UTF8
 #endif
 
 

+ 2 - 2
Foundation/include/Poco/UTF8String.h

@@ -1,7 +1,7 @@
 //
 // UTF8String.h
 //
-// $Id: //poco/Main/Foundation/include/Poco/UTF8String.h#1 $
+// $Id: //poco/Main/Foundation/include/Poco/UTF8String.h#2 $
 //
 // Library: Foundation
 // Package: Text
@@ -53,7 +53,7 @@ struct Foundation_API UTF8
 	/// The various variants of icompare() provide case insensitive comparison
 	/// for UTF-8 encoded strings.
 	///
-	/// toUppwer(), toUpperInPlace(), toLower() and toLowerInPlace() provide
+	/// toUpper(), toUpperInPlace(), toLower() and toLowerInPlace() provide
 	/// Unicode-based character case transformation for UTF-8 encoded strings.
 {
 	static int icompare(const std::string& str, std::string::size_type pos, std::string::size_type n, std::string::const_iterator it2, std::string::const_iterator end2);

+ 3 - 3
Foundation/src/Debugger.cpp

@@ -1,7 +1,7 @@
 //
 // Debugger.cpp
 //
-// $Id: //poco/Main/Foundation/src/Debugger.cpp#14 $
+// $Id: //poco/Main/Foundation/src/Debugger.cpp#15 $
 //
 // Library: Foundation
 // Package: Core
@@ -91,8 +91,8 @@ void Debugger::message(const std::string& msg)
 		umsg += '\n';
 		OutputDebugStringW(umsg.c_str());
 #else
-		OutputDebugString(msg.c_str());
-		OutputDebugString("\n");
+		OutputDebugStringA(msg.c_str());
+		OutputDebugStringA("\n");
 #endif
 	}
 	#elif defined(POCO_OS_FAMILY_UNIX)

+ 6 - 6
Foundation/src/Environment_WIN32.cpp

@@ -1,7 +1,7 @@
 //
 // Environment_WIN32.cpp
 //
-// $Id: //poco/Main/Foundation/src/Environment_WIN32.cpp#12 $
+// $Id: //poco/Main/Foundation/src/Environment_WIN32.cpp#13 $
 //
 // Library: Foundation
 // Package: Core
@@ -45,10 +45,10 @@ namespace Poco {
 
 std::string EnvironmentImpl::getImpl(const std::string& name)
 {
-	DWORD len = GetEnvironmentVariable(name.c_str(), 0, 0);
+	DWORD len = GetEnvironmentVariableA(name.c_str(), 0, 0);
 	if (len == 0) throw NotFoundException(name);
 	char* buffer = new char[len];
-	GetEnvironmentVariable(name.c_str(), buffer, len);
+	GetEnvironmentVariableA(name.c_str(), buffer, len);
 	std::string result(buffer);
 	delete [] buffer;
 	return result;
@@ -57,14 +57,14 @@ std::string EnvironmentImpl::getImpl(const std::string& name)
 
 bool EnvironmentImpl::hasImpl(const std::string& name)
 {
-	DWORD len = GetEnvironmentVariable(name.c_str(), 0, 0);
+	DWORD len = GetEnvironmentVariableA(name.c_str(), 0, 0);
 	return len > 0;
 }
 
 
 void EnvironmentImpl::setImpl(const std::string& name, const std::string& value)
 {
-	if (SetEnvironmentVariable(name.c_str(), value.c_str()) == 0)
+	if (SetEnvironmentVariableA(name.c_str(), value.c_str()) == 0)
 	{
 		std::string msg = "cannot set environment variable: ";
 		msg.append(name);
@@ -139,7 +139,7 @@ std::string EnvironmentImpl::nodeNameImpl()
 {
 	char name[MAX_COMPUTERNAME_LENGTH + 1];
 	DWORD size = sizeof(name);
-	if (GetComputerName(name, &size) == 0) throw SystemException("Cannot get computer name");
+	if (GetComputerNameA(name, &size) == 0) throw SystemException("Cannot get computer name");
 	return std::string(name);
 }
 

+ 4 - 4
Foundation/src/EventLogChannel.cpp

@@ -1,7 +1,7 @@
 //
 // EventLogChannel.cpp
 //
-// $Id: //poco/Main/Foundation/src/EventLogChannel.cpp#13 $
+// $Id: //poco/Main/Foundation/src/EventLogChannel.cpp#14 $
 //
 // Library: Foundation
 // Package: Logging
@@ -69,7 +69,7 @@ EventLogChannel::EventLogChannel():
 	}
 #else
 	char name[256];
-	int n = GetModuleFileName(NULL, name, sizeof(name));
+	int n = GetModuleFileNameA(NULL, name, sizeof(name));
 	if (n > 0)
 	{
 		char* end = name + n - 1;
@@ -299,11 +299,11 @@ std::wstring EventLogChannel::findLibrary(const wchar_t* name)
 std::string EventLogChannel::findLibrary(const char* name)
 {
 	std::string path;
-	HMODULE dll = LoadLibrary(name);
+	HMODULE dll = LoadLibraryA(name);
 	if (dll)
 	{
 		char name[MAX_PATH + 1];
-		int n = GetModuleFileName(dll, name, sizeof(name));
+		int n = GetModuleFileNameA(dll, name, sizeof(name));
 		if (n > 0) path = name;
 		FreeLibrary(dll);
 	}

+ 13 - 9
Foundation/src/File_WIN32.cpp

@@ -1,7 +1,7 @@
 //
 // File_WIN32.cpp
 //
-// $Id: //poco/Main/Foundation/src/File_WIN32.cpp#18 $
+// $Id: //poco/Main/Foundation/src/File_WIN32.cpp#20 $
 //
 // Library: Foundation
 // Package: Filesystem
@@ -48,7 +48,7 @@ class FileHandle
 public:
 	FileHandle(const std::string& path, DWORD access, DWORD share, DWORD disp)
 	{
-		_h = CreateFile(path.c_str(), access, share, 0, disp, 0, 0);
+		_h = CreateFileA(path.c_str(), access, share, 0, disp, 0, 0);
 		if (!_h) FileImpl::handleLastErrorImpl(path);
 	}
 	
@@ -283,8 +283,12 @@ void FileImpl::copyToImpl(const std::string& path) const
 {
 	poco_assert (!_path.empty());
 
-	if (CopyFile(_path.c_str(), path.c_str(), FALSE) == 0) 
-		handleLastErrorImpl(_path);
+	if (CopyFileA(_path.c_str(), path.c_str(), FALSE) != 0) 
+	{
+		FileImpl copy(path);
+		copy.setWriteableImpl(true);
+	}
+	else handleLastErrorImpl(_path);
 }
 
 
@@ -292,7 +296,7 @@ void FileImpl::renameToImpl(const std::string& path)
 {
 	poco_assert (!_path.empty());
 
-	if (MoveFile(_path.c_str(), path.c_str()) == 0) 
+	if (MoveFileA(_path.c_str(), path.c_str()) == 0) 
 		handleLastErrorImpl(_path);
 }
 
@@ -303,12 +307,12 @@ void FileImpl::removeImpl()
 
 	if (isDirectoryImpl())
 	{
-		if (RemoveDirectory(_path.c_str()) == 0) 
+		if (RemoveDirectoryA(_path.c_str()) == 0) 
 			handleLastErrorImpl(_path);
 	}
 	else
 	{
-		if (DeleteFile(_path.c_str()) == 0)
+		if (DeleteFileA(_path.c_str()) == 0)
 			handleLastErrorImpl(_path);
 	}
 }
@@ -318,7 +322,7 @@ bool FileImpl::createFileImpl()
 {
 	poco_assert (!_path.empty());
 
-	HANDLE hFile = CreateFile(_path.c_str(), GENERIC_WRITE, 0, 0, CREATE_NEW, 0, 0);
+	HANDLE hFile = CreateFileA(_path.c_str(), GENERIC_WRITE, 0, 0, CREATE_NEW, 0, 0);
 	if (hFile != INVALID_HANDLE_VALUE)
 	{
 		CloseHandle(hFile);
@@ -338,7 +342,7 @@ bool FileImpl::createDirectoryImpl()
 	
 	if (existsImpl() && isDirectoryImpl())
 		return false;
-	if (CreateDirectory(_path.c_str(), 0) == 0)
+	if (CreateDirectoryA(_path.c_str(), 0) == 0)
 		handleLastErrorImpl(_path);
 	return true;
 }

+ 7 - 3
Foundation/src/File_WIN32U.cpp

@@ -1,7 +1,7 @@
 //
 // File_WIN32U.cpp
 //
-// $Id: //poco/Main/Foundation/src/File_WIN32U.cpp#12 $
+// $Id: //poco/Main/Foundation/src/File_WIN32U.cpp#13 $
 //
 // Library: Foundation
 // Package: Filesystem
@@ -289,8 +289,12 @@ void FileImpl::copyToImpl(const std::string& path) const
 
 	std::wstring upath;
 	UnicodeConverter::toUTF16(path, upath);
-	if (CopyFileW(_upath.c_str(), upath.c_str(), FALSE) == 0) 
-		handleLastErrorImpl(_path);
+	if (CopyFileW(_upath.c_str(), upath.c_str(), FALSE) != 0)
+	{
+		FileImpl copy(path);
+		copy.setWriteableImpl(true);
+	}
+	else handleLastErrorImpl(_path);
 }
 
 

+ 2 - 2
Foundation/src/LogFile_WIN32.cpp

@@ -1,7 +1,7 @@
 //
 // LogFile_WIN32.cpp
 //
-// $Id: //poco/Main/Foundation/src/LogFile_WIN32.cpp#7 $
+// $Id: //poco/Main/Foundation/src/LogFile_WIN32.cpp#8 $
 //
 // Library: Foundation
 // Package: Logging
@@ -44,7 +44,7 @@ namespace Poco {
 
 LogFileImpl::LogFileImpl(const std::string& path): _path(path)
 {
-	_hFile = CreateFile(path.c_str(), GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
+	_hFile = CreateFileA(path.c_str(), GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
 	if (_hFile == INVALID_HANDLE_VALUE) throw OpenFileException(path);
 	SetFilePointer(_hFile, 0, 0, FILE_END);
 	// There seems to be a strange "optimization" in the Windows NTFS

+ 2 - 2
Foundation/src/NamedEvent_WIN32.cpp

@@ -1,7 +1,7 @@
 //
 // NamedEvent_WIN32.cpp
 //
-// $Id: //poco/Main/Foundation/src/NamedEvent_WIN32.cpp#8 $
+// $Id: //poco/Main/Foundation/src/NamedEvent_WIN32.cpp#9 $
 //
 // Library: Foundation
 // Package: Processes
@@ -44,7 +44,7 @@ namespace Poco {
 NamedEventImpl::NamedEventImpl(const std::string& name):
 	_name(name)
 {
-	_event = CreateEvent(NULL, FALSE, FALSE, _name.c_str());
+	_event = CreateEventA(NULL, FALSE, FALSE, _name.c_str());
 	if (!_event)
 		throw SystemException("cannot create named event", _name);
 }

+ 2 - 2
Foundation/src/NamedMutex_WIN32.cpp

@@ -1,7 +1,7 @@
 //
 // NamedMutex_WIN32.cpp
 //
-// $Id: //poco/Main/Foundation/src/NamedMutex_WIN32.cpp#8 $
+// $Id: //poco/Main/Foundation/src/NamedMutex_WIN32.cpp#9 $
 //
 // Library: Foundation
 // Package: Processes
@@ -44,7 +44,7 @@ namespace Poco {
 NamedMutexImpl::NamedMutexImpl(const std::string& name):
 	_name(name)
 {
-	_mutex = CreateMutex(NULL, FALSE, _name.c_str());
+	_mutex = CreateMutexA(NULL, FALSE, _name.c_str());
 	if (!_mutex) 
 		throw SystemException("cannot create named mutex", _name);
 }

+ 4 - 4
Foundation/src/Path_WIN32.cpp

@@ -1,7 +1,7 @@
 //
 // Path_WIN32.cpp
 //
-// $Id: //poco/Main/Foundation/src/Path_WIN32.cpp#12 $
+// $Id: //poco/Main/Foundation/src/Path_WIN32.cpp#13 $
 //
 // Library: Foundation
 // Package: Filesystem
@@ -45,7 +45,7 @@ namespace Poco {
 std::string PathImpl::currentImpl()
 {
 	char buffer[_MAX_PATH];
-	DWORD n = GetCurrentDirectory(sizeof(buffer), buffer);
+	DWORD n = GetCurrentDirectoryA(sizeof(buffer), buffer);
 	if (n > 0 && n < sizeof(buffer))
 	{
 		std::string result(buffer, n);
@@ -71,7 +71,7 @@ std::string PathImpl::homeImpl()
 std::string PathImpl::tempImpl()
 {
 	char buffer[_MAX_PATH];
-	DWORD n = GetTempPath(sizeof(buffer), buffer);
+	DWORD n = GetTempPathA(sizeof(buffer), buffer);
 	if (n > 0 && n < sizeof(buffer))
 	{
 		std::string result(buffer, n);
@@ -92,7 +92,7 @@ std::string PathImpl::nullImpl()
 std::string PathImpl::expandImpl(const std::string& path)
 {
 	char buffer[_MAX_PATH];
-	DWORD n = ExpandEnvironmentStrings(path.c_str(), buffer, sizeof(buffer));
+	DWORD n = ExpandEnvironmentStringsA(path.c_str(), buffer, sizeof(buffer));
 	if (n > 0 && n < sizeof(buffer))
 		return std::string(buffer, n - 1);
 	else

+ 2 - 2
Foundation/src/Process_WIN32.cpp

@@ -1,7 +1,7 @@
 //
 // Process_WIN32.cpp
 //
-// $Id: //poco/Main/Foundation/src/Process_WIN32.cpp#18 $
+// $Id: //poco/Main/Foundation/src/Process_WIN32.cpp#19 $
 //
 // Library: Foundation
 // Package: Processes
@@ -152,7 +152,7 @@ ProcessHandleImpl* ProcessImpl::launchImpl(const std::string& command, const Arg
 	if (errPipe) errPipe->close(Pipe::CLOSE_WRITE);
 
 	PROCESS_INFORMATION processInfo;
-	BOOL rc = CreateProcess(
+	BOOL rc = CreateProcessA(
 		NULL, 
 		const_cast<char*>(commandLine.c_str()), 
 		NULL, 

+ 2 - 2
Foundation/src/SharedLibrary_WIN32.cpp

@@ -1,7 +1,7 @@
 //
 // SharedLibrary_WIN32.cpp
 //
-// $Id: //poco/Main/Foundation/src/SharedLibrary_WIN32.cpp#12 $
+// $Id: //poco/Main/Foundation/src/SharedLibrary_WIN32.cpp#13 $
 //
 // Library: Foundation
 // Package: SharedLibrary
@@ -60,7 +60,7 @@ void SharedLibraryImpl::loadImpl(const std::string& path)
 	FastMutex::ScopedLock lock(_mutex);
 
 	if (_handle) throw LibraryAlreadyLoadedException(_path);
-	_handle = LoadLibrary(path.c_str());
+	_handle = LoadLibraryA(path.c_str());
 	if (!_handle) throw LibraryLoadException(path);
 	_path = path;
 }

+ 37 - 3
NEWS

@@ -1,5 +1,39 @@
-Release 1.2.0 (2006-08-29)
-==========================
+Release 1.3 (2007-05-07)
+========================
+
+This release contains major improvements and new features.
+
+Summary of changes:
+- HashMap and HashSet classes (Foundation)
+- Tuple class template (Foundation)
+- SharedMemory class (Foundation)
+- FileStream, FileInputStream, FileOutputStream classes that
+  support Unicode (UTF-8) filenames on Windows (Foundation)
+- improvements and bugfixes in the Net library, mostly HTTP
+- DynamicAny class (Foundation)
+- improvements to NetworkInterface class (Net)
+- Condition class, implementing POSIX condition variable-style
+  thread synchronization (Foundation)
+- upgraded to PCRE 7.1 (Foundation)
+- improved Unicode/UTF-8 support
+- NodeAppender class for faster DOM tree creation (XML)
+- Checksum class (Foundation)
+- lots of bugfixes and other improvements - please see the
+  CHANGELOG for details
+
+Incompatible Changes and Transition Issues:
+The HashFunction class template has been changed in an incompatible
+way. The member function formerly named hash() is now the function
+call operator. If you have defined your own HashFunction classes,
+you have to update your code. Sorry for the inconvenience.
+
+On Windows, POCO now builds with Unicode/UTF-8 support 
+(POCO_WIN32_UTF8) enabled by default. If you need the previous
+behavior, remove the corresponding #define from Poco/Config.h
+
+
+Release 1.2 (2006-08-29)
+========================
 
 This release contains major improvements and new features.
 Summary of changes (please see CHANGELOG for details):
@@ -117,4 +151,4 @@ Please refer to the README file for more information and instructions for
 building the libraries.
 
 --
-$Id: //poco/Main/dist/NEWS#27 $
+$Id: //poco/Main/dist/NEWS#28 $

+ 2 - 2
Net/Net_vs71.vcproj

@@ -148,7 +148,7 @@
 				Name="VCCLCompilerTool"
 				Optimization="0"
 				AdditionalIncludeDirectories=".\include;..\Foundation\include"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;Net_EXPORTS;POCO_STATIC"
 				StringPooling="TRUE"
 				MinimalRebuild="TRUE"
 				BasicRuntimeChecks="3"
@@ -201,7 +201,7 @@
 				OmitFramePointers="TRUE"
 				OptimizeForProcessor="3"
 				AdditionalIncludeDirectories=".\include;..\Foundation\include"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;Net_EXPORTS;POCO_STATIC"
 				GeneratePreprocessedFile="0"
 				KeepComments="FALSE"
 				StringPooling="TRUE"

+ 3 - 3
Net/Net_vs80.vcproj

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="Windows-1252"?>
 <VisualStudioProject
 	ProjectType="Visual C++"
-	Version="8,00"
+	Version="8.00"
 	Name="Net"
 	ProjectGUID="{B057A1FE-09F7-465E-B8B5-E1B659051D76}"
 	RootNamespace="Net"
@@ -232,7 +232,7 @@
 				FavorSizeOrSpeed="1"
 				OmitFramePointers="true"
 				AdditionalIncludeDirectories=".\include;..\Foundation\include"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC"
+				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;Net_EXPORTS;POCO_STATIC"
 				GeneratePreprocessedFile="0"
 				KeepComments="false"
 				StringPooling="true"
@@ -303,7 +303,7 @@
 				Name="VCCLCompilerTool"
 				Optimization="0"
 				AdditionalIncludeDirectories=".\include;..\Foundation\include"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;Net_EXPORTS;POCO_STATIC"
 				StringPooling="true"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"

+ 23 - 1
Net/include/Poco/Net/Net.h

@@ -1,7 +1,7 @@
 //
 // Net.h
 //
-// $Id: //poco/Main/Net/include/Poco/Net/Net.h#2 $
+// $Id: //poco/Main/Net/include/Poco/Net/Net.h#3 $
 //
 // Library: Net
 // Package: NetCore
@@ -67,4 +67,26 @@
 #endif
 
 
+//
+// Automatically link Net library.
+//
+#if defined(_MSC_VER)
+	#if !defined(POCO_NO_AUTOMATIC_LIBS) && !defined(Net_EXPORTS)
+		#if defined(POCO_DLL)
+			#if defined(_DEBUG)
+				#pragma comment(lib, "PocoNetd.lib")
+			#else
+				#pragma comment(lib, "PocoNet.lib")
+			#endif
+		#else
+			#if defined(_DEBUG)
+				#pragma comment(lib, "PocoNetmtd.lib")
+			#else
+				#pragma comment(lib, "PocoNetmt.lib")
+			#endif
+		#endif
+	#endif
+#endif
+
+
 #endif // Net_Net_INCLUDED

+ 2 - 2
Net/src/StreamSocketImpl.cpp

@@ -1,7 +1,7 @@
 //
 // StreamSocketImpl.cpp
 //
-// $Id: //poco/Main/Net/src/StreamSocketImpl.cpp#6 $
+// $Id: //poco/Main/Net/src/StreamSocketImpl.cpp#7 $
 //
 // Library: Net
 // Package: Sockets
@@ -62,7 +62,7 @@ int StreamSocketImpl::sendBytes(const void* buffer, int length, int flags)
 	int remaining = length;
 	while (remaining > 0)
 	{
-		int n = SocketImpl::sendBytes(p, length, flags); 
+		int n = SocketImpl::sendBytes(p, remaining, flags); 
 		p += n; 
 		remaining -= n;
 	}

+ 10 - 0
NetSSL_OpenSSL/NetSSL_OpenSSL_vs71.sln

@@ -11,17 +11,27 @@ EndProject
 Global
 	GlobalSection(SolutionConfiguration) = preSolution
 		debug_shared = debug_shared
+		debug_static = debug_static
 		release_shared = release_shared
+		release_static = release_static
 	EndGlobalSection
 	GlobalSection(ProjectConfiguration) = postSolution
 		{5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared.ActiveCfg = debug_shared|Win32
 		{5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared.Build.0 = debug_shared|Win32
+		{5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static.ActiveCfg = debug_static|Win32
+		{5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static.Build.0 = debug_static|Win32
 		{5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared.ActiveCfg = release_shared|Win32
 		{5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared.Build.0 = release_shared|Win32
+		{5AECC55E-A469-11DA-8DA6-005056C00008}.release_static.ActiveCfg = release_static|Win32
+		{5AECC55E-A469-11DA-8DA6-005056C00008}.release_static.Build.0 = release_static|Win32
 		{5B023A89-A469-11DA-8DA6-005056C00008}.debug_shared.ActiveCfg = debug_shared|Win32
 		{5B023A89-A469-11DA-8DA6-005056C00008}.debug_shared.Build.0 = debug_shared|Win32
+		{5B023A89-A469-11DA-8DA6-005056C00008}.debug_static.ActiveCfg = debug_static|Win32
+		{5B023A89-A469-11DA-8DA6-005056C00008}.debug_static.Build.0 = debug_static|Win32
 		{5B023A89-A469-11DA-8DA6-005056C00008}.release_shared.ActiveCfg = release_shared|Win32
 		{5B023A89-A469-11DA-8DA6-005056C00008}.release_shared.Build.0 = release_shared|Win32
+		{5B023A89-A469-11DA-8DA6-005056C00008}.release_static.ActiveCfg = release_static|Win32
+		{5B023A89-A469-11DA-8DA6-005056C00008}.release_static.Build.0 = release_static|Win32
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
 	EndGlobalSection

+ 101 - 0
NetSSL_OpenSSL/NetSSL_OpenSSL_vs71.vcproj

@@ -138,6 +138,107 @@
 			<Tool
 				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
 		</Configuration>
+		<Configuration
+			Name="debug_static|Win32"
+			OutputDirectory="$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="4"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories=".\include;..\Foundation\include;..\Net\include;..\Util\include"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;POCO_STATIC;NetSSL_EXPORTS"
+				StringPooling="TRUE"
+				MinimalRebuild="TRUE"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				BufferSecurityCheck="TRUE"
+				TreatWChar_tAsBuiltInType="TRUE"
+				ForceConformanceInForLoopScope="TRUE"
+				RuntimeTypeInfo="TRUE"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="4"
+				CompileAs="0"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLibrarianTool"
+				OutputFile="..\lib\PocoNetSSLmtd.lib"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="release_static|Win32"
+			OutputDirectory="$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="4"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="4"
+				InlineFunctionExpansion="1"
+				EnableIntrinsicFunctions="TRUE"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="TRUE"
+				OptimizeForProcessor="3"
+				AdditionalIncludeDirectories=".\include;..\Foundation\include;..\Net\include;..\Util\include"
+				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;POCO_STATIC;NetSSL_EXPORTS"
+				GeneratePreprocessedFile="0"
+				KeepComments="FALSE"
+				StringPooling="TRUE"
+				RuntimeLibrary="2"
+				BufferSecurityCheck="FALSE"
+				TreatWChar_tAsBuiltInType="TRUE"
+				ForceConformanceInForLoopScope="TRUE"
+				RuntimeTypeInfo="TRUE"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="0"
+				CompileAs="0"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLibrarianTool"
+				OutputFile="..\lib\PocoNetSSLmt.lib"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

+ 10 - 0
NetSSL_OpenSSL/NetSSL_OpenSSL_vs80.sln

@@ -11,17 +11,27 @@ EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		debug_shared|Win32 = debug_shared|Win32
+		debug_static|Win32 = debug_static|Win32
 		release_shared|Win32 = release_shared|Win32
+		release_static|Win32 = release_static|Win32
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
 		{5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared|Win32.ActiveCfg = debug_shared|Win32
 		{5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared|Win32.Build.0 = debug_shared|Win32
+		{5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static|Win32.ActiveCfg = debug_static|Win32
+		{5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static|Win32.Build.0 = debug_static|Win32
 		{5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared|Win32.ActiveCfg = release_shared|Win32
 		{5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared|Win32.Build.0 = release_shared|Win32
+		{5AECC55E-A469-11DA-8DA6-005056C00008}.release_static|Win32.ActiveCfg = release_static|Win32
+		{5AECC55E-A469-11DA-8DA6-005056C00008}.release_static|Win32.Build.0 = release_static|Win32
 		{B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_shared|Win32.ActiveCfg = debug_shared|Win32
 		{B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_shared|Win32.Build.0 = debug_shared|Win32
+		{B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static|Win32.ActiveCfg = debug_static|Win32
+		{B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static|Win32.Build.0 = debug_static|Win32
 		{B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_shared|Win32.ActiveCfg = release_shared|Win32
 		{B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_shared|Win32.Build.0 = release_shared|Win32
+		{B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static|Win32.ActiveCfg = release_static|Win32
+		{B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static|Win32.Build.0 = release_static|Win32
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

+ 146 - 0
NetSSL_OpenSSL/NetSSL_OpenSSL_vs80.vcproj

@@ -201,6 +201,152 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="debug_static|Win32"
+			OutputDirectory="$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories=".\include;..\Foundation\include;..\Net\include;..\Util\include"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;NetSSL_EXPORTS;POCO_STATIC"
+				StringPooling="true"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				BufferSecurityCheck="true"
+				TreatWChar_tAsBuiltInType="true"
+				ForceConformanceInForLoopScope="true"
+				RuntimeTypeInfo="true"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="4"
+				CompileAs="0"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+				OutputFile="..\lib\PocoNetSSLmtd.lib"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="release_static|Win32"
+			OutputDirectory="$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+			CharacterSet="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="4"
+				InlineFunctionExpansion="1"
+				EnableIntrinsicFunctions="true"
+				FavorSizeOrSpeed="1"
+				OmitFramePointers="true"
+				AdditionalIncludeDirectories=".\include;..\Foundation\include;..\Net\include;..\Util\include"
+				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;NetSSL_EXPORTS;POCO_STATIC"
+				GeneratePreprocessedFile="0"
+				KeepComments="false"
+				StringPooling="true"
+				RuntimeLibrary="2"
+				BufferSecurityCheck="false"
+				TreatWChar_tAsBuiltInType="true"
+				ForceConformanceInForLoopScope="true"
+				RuntimeTypeInfo="true"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="0"
+				CompileAs="0"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+				OutputFile="..\lib\PocoNetSSLmt.lib"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>

+ 23 - 1
NetSSL_OpenSSL/include/Poco/Net/NetSSL.h

@@ -1,7 +1,7 @@
 //
 // NetSSL.h
 //
-// $Id: //poco/Main/NetSSL_OpenSSL/include/Poco/Net/NetSSL.h#6 $
+// $Id: //poco/Main/NetSSL_OpenSSL/include/Poco/Net/NetSSL.h#7 $
 //
 // Library: NetSSL_OpenSSL
 // Package: SSLCore
@@ -67,4 +67,26 @@
 #endif
 
 
+//
+// Automatically link NetSSL library.
+//
+#if defined(_MSC_VER)
+	#if !defined(POCO_NO_AUTOMATIC_LIBS) && !defined(NetSSL_EXPORTS)
+		#if defined(POCO_DLL)
+			#if defined(_DEBUG)
+				#pragma comment(lib, "PocoNetSSLd.lib")
+			#else
+				#pragma comment(lib, "PocoNetSSL.lib")
+			#endif
+		#else
+			#if defined(_DEBUG)
+				#pragma comment(lib, "PocoNetSSLmtd.lib")
+			#else
+				#pragma comment(lib, "PocoNetSSLmt.lib")
+			#endif
+		#endif
+	#endif
+#endif
+
+
 #endif // NetSSL_NetSSL_INCLUDED

+ 2 - 2
Util/Util_vs71.vcproj

@@ -148,7 +148,7 @@
 				Name="VCCLCompilerTool"
 				Optimization="0"
 				AdditionalIncludeDirectories=".\include;..\Foundation\include;..\XML\include"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;Util_EXPORTS;POCO_STATIC"
 				StringPooling="TRUE"
 				MinimalRebuild="TRUE"
 				BasicRuntimeChecks="3"
@@ -201,7 +201,7 @@
 				OmitFramePointers="TRUE"
 				OptimizeForProcessor="3"
 				AdditionalIncludeDirectories=".\include;..\Foundation\include;..\XML\include"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;Util_EXPORTS;POCO_STATIC"
 				GeneratePreprocessedFile="0"
 				KeepComments="FALSE"
 				StringPooling="TRUE"

+ 3 - 3
Util/Util_vs80.vcproj

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="Windows-1252"?>
 <VisualStudioProject
 	ProjectType="Visual C++"
-	Version="8,00"
+	Version="8.00"
 	Name="Util"
 	ProjectGUID="{6FF56CDB-787A-4714-A28C-919003F9FA6C}"
 	RootNamespace="Util"
@@ -233,7 +233,7 @@
 				FavorSizeOrSpeed="1"
 				OmitFramePointers="true"
 				AdditionalIncludeDirectories=".\include;..\Foundation\include;..\XML\include"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC"
+				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;Util_EXPORTS;POCO_STATIC"
 				GeneratePreprocessedFile="0"
 				KeepComments="false"
 				StringPooling="true"
@@ -305,7 +305,7 @@
 				Name="VCCLCompilerTool"
 				Optimization="0"
 				AdditionalIncludeDirectories=".\include;..\Foundation\include;..\XML\include"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;Util_EXPORTS;POCO_STATIC"
 				StringPooling="true"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"

+ 23 - 1
Util/include/Poco/Util/Util.h

@@ -1,7 +1,7 @@
 //
 // Util.h
 //
-// $Id: //poco/Main/Util/include/Poco/Util/Util.h#2 $
+// $Id: //poco/Main/Util/include/Poco/Util/Util.h#3 $
 //
 // Library: Util
 // Package: Util
@@ -67,4 +67,26 @@
 #endif
 
 
+//
+// Automatically link Util library.
+//
+#if defined(_MSC_VER)
+	#if !defined(POCO_NO_AUTOMATIC_LIBS) && !defined(Util_EXPORTS)
+		#if defined(POCO_DLL)
+			#if defined(_DEBUG)
+				#pragma comment(lib, "PocoUtild.lib")
+			#else
+				#pragma comment(lib, "PocoUtil.lib")
+			#endif
+		#else
+			#if defined(_DEBUG)
+				#pragma comment(lib, "PocoUtilmtd.lib")
+			#else
+				#pragma comment(lib, "PocoUtilmt.lib")
+			#endif
+		#endif
+	#endif
+#endif
+
+
 #endif // Util_Util_INCLUDED

+ 2 - 2
Util/src/Application.cpp

@@ -1,7 +1,7 @@
 //
 // Application.cpp
 //
-// $Id: //poco/Main/Util/src/Application.cpp#27 $
+// $Id: //poco/Main/Util/src/Application.cpp#28 $
 //
 // Library: Util
 // Package: Application
@@ -410,7 +410,7 @@ void Application::getApplicationPath(Poco::Path& appPath) const
 		else throw SystemException("Cannot get application file name.");
 	#else
 		char path[1024];
-		int n = GetModuleFileName(0, path, sizeof(path));
+		int n = GetModuleFileNameA(0, path, sizeof(path));
 		if (n > 0)
 			appPath = path;
 		else

+ 3 - 3
Util/src/WinRegistryKey.cpp

@@ -1,7 +1,7 @@
 //
 // WinRegistryKey.cpp
 //
-// $Id: //poco/Main/Util/src/WinRegistryKey.cpp#12 $
+// $Id: //poco/Main/Util/src/WinRegistryKey.cpp#13 $
 //
 // Library: Util
 // Package: Windows
@@ -186,9 +186,9 @@ std::string WinRegistryKey::getStringExpand(const std::string& name)
 		RegQueryValueEx(_hKey, name.c_str(), NULL, NULL, (BYTE*) buffer, &size);
 		buffer[size] = 0;
 		char temp;
-		DWORD expSize = ExpandEnvironmentStrings(buffer, &temp, 1);	
+		DWORD expSize = ExpandEnvironmentStringsA(buffer, &temp, 1);	
 		char* expBuffer = new char[expSize];
-		ExpandEnvironmentStrings(buffer, expBuffer, expSize);
+		ExpandEnvironmentStringsA(buffer, expBuffer, expSize);
 		std::string result(expBuffer);
 		delete [] buffer;
 		delete [] expBuffer;

+ 2 - 2
XML/XML_vs71.vcproj

@@ -146,7 +146,7 @@
 				Name="VCCLCompilerTool"
 				Optimization="0"
 				AdditionalIncludeDirectories=".\include;..\Foundation\include"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;XML_EXPORTS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H"
 				StringPooling="TRUE"
 				MinimalRebuild="TRUE"
 				BasicRuntimeChecks="3"
@@ -199,7 +199,7 @@
 				OmitFramePointers="TRUE"
 				OptimizeForProcessor="3"
 				AdditionalIncludeDirectories=".\include;..\Foundation\include"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;XML_EXPORTS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H"
 				GeneratePreprocessedFile="0"
 				KeepComments="FALSE"
 				StringPooling="TRUE"

+ 2 - 2
XML/XML_vs80.vcproj

@@ -230,7 +230,7 @@
 				FavorSizeOrSpeed="1"
 				OmitFramePointers="true"
 				AdditionalIncludeDirectories=".\include;..\Foundation\include"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H"
+				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;XML_EXPORTS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H"
 				GeneratePreprocessedFile="0"
 				KeepComments="false"
 				StringPooling="true"
@@ -301,7 +301,7 @@
 				Name="VCCLCompilerTool"
 				Optimization="0"
 				AdditionalIncludeDirectories=".\include;..\Foundation\include"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;XML_EXPORTS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H"
 				StringPooling="true"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"

+ 23 - 1
XML/include/Poco/XML/XML.h

@@ -1,7 +1,7 @@
 //
 // XML.h
 //
-// $Id: //poco/Main/XML/include/Poco/XML/XML.h#2 $
+// $Id: //poco/Main/XML/include/Poco/XML/XML.h#3 $
 //
 // Library: XML
 // Package: XML
@@ -67,4 +67,26 @@
 #endif
 
 
+//
+// Automatically link XML library.
+//
+#if defined(_MSC_VER)
+	#if !defined(POCO_NO_AUTOMATIC_LIBS) && !defined(XML_EXPORTS)
+		#if defined(POCO_DLL)
+			#if defined(_DEBUG)
+				#pragma comment(lib, "PocoXMLd.lib")
+			#else
+				#pragma comment(lib, "PocoXML.lib")
+			#endif
+		#else
+			#if defined(_DEBUG)
+				#pragma comment(lib, "PocoXMLmtd.lib")
+			#else
+				#pragma comment(lib, "PocoXMLmt.lib")
+			#endif
+		#endif
+	#endif
+#endif
+
+
 #endif // XML_XML_INCLUDED