From 4247c9e2c2612394a5f4d63a65ba538f975906d4 Mon Sep 17 00:00:00 2001 From: Jose Date: Tue, 10 Nov 2009 05:30:26 +0100 Subject: Fixed 3962 - Berkeley DB, problems with unicode paths. --- cpp/src/Ice/Service.cpp | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'cpp/src/Ice/Service.cpp') 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 #include #include +#include #include #include #include +#include #include #include #include @@ -30,7 +32,6 @@ # include # include # include -# include #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) -- cgit v1.2.3