diff options
author | Jose <jose@zeroc.com> | 2009-11-10 05:30:26 +0100 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2009-11-10 05:30:26 +0100 |
commit | 4247c9e2c2612394a5f4d63a65ba538f975906d4 (patch) | |
tree | 96d3308681d9b0684ce5dd763f5a5d415eaf09d7 /cpp/src/Ice/Service.cpp | |
parent | Win32 64 bits compilation error (diff) | |
download | ice-4247c9e2c2612394a5f4d63a65ba538f975906d4.tar.bz2 ice-4247c9e2c2612394a5f4d63a65ba538f975906d4.tar.xz ice-4247c9e2c2612394a5f4d63a65ba538f975906d4.zip |
Fixed 3962 - Berkeley DB, problems with unicode paths.
Diffstat (limited to 'cpp/src/Ice/Service.cpp')
-rw-r--r-- | cpp/src/Ice/Service.cpp | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/cpp/src/Ice/Service.cpp b/cpp/src/Ice/Service.cpp index 1e92791064d..7aa1217673b 100644 --- a/cpp/src/Ice/Service.cpp +++ b/cpp/src/Ice/Service.cpp @@ -14,9 +14,11 @@ #include <IceUtil/Monitor.h> #include <IceUtil/Mutex.h> #include <IceUtil/ArgVector.h> +#include <IceUtil/FileUtil.h> #include <Ice/Service.h> #include <Ice/LoggerI.h> #include <Ice/Initialize.h> +#include <Ice/StringConverter.h> #include <Ice/Communicator.h> #include <Ice/LocalException.h> #include <Ice/Properties.h> @@ -30,7 +32,6 @@ # include <sys/types.h> # include <sys/stat.h> # include <csignal> -# include <fstream> #endif using namespace std; @@ -835,6 +836,25 @@ Ice::Service::main(int& argc, char* argv[], const InitializationData& initializa return run(argc, argv, initData); } +#ifdef _WIN32 + +int +Ice::Service::main(int& argc, wchar_t* argv[], const InitializationData& initializationData) +{ +#ifdef __BCPLUSPLUS__ // COMPILER FIX + // + //BCC don't see the main overload if we don't create the temp args object here. + // + Ice::StringSeq args = Ice::argsToStringSeq(argc, argv, initializationData.stringConverter); + return main(args, initializationData); +#else + return main(Ice::argsToStringSeq(argc, argv, initializationData.stringConverter), initializationData); +#endif + +} + +#endif + int Ice::Service::main(StringSeq& args, const InitializationData& initData) { @@ -2125,7 +2145,7 @@ Ice::Service::runDaemon(int argc, char* argv[], const InitializationData& initDa // if(_pidFile.size() > 0) { - ofstream of(_pidFile.c_str()); + IceUtilInternal::ofstream of(Ice::nativeToUTF8(_communicator, _pidFile)); of << getpid() << endl; if(!of) |