OSDN Git Service

作業ディレクトリからライブラリを読み込まないように修正。
authorsirakaba <sirakaba@9df91469-1e22-0410-86e7-ea8537beb833>
Sun, 29 Aug 2010 05:30:27 +0000 (05:30 +0000)
committersirakaba <sirakaba@9df91469-1e22-0410-86e7-ea8537beb833>
Sun, 29 Aug 2010 05:30:27 +0000 (05:30 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/tpi/tpi@295 9df91469-1e22-0410-86e7-ea8537beb833

src/common/library/library.h
src/plugin/7zArc/7zArc.cpp
src/plugin/calLibrary/calLibrary.cpp
src/plugin/eggArc/eggArc.cpp
src/plugin/rarArc/rarArc.cpp

index 59d907b..d8d73e3 100644 (file)
@@ -36,6 +36,17 @@ wxString MB2String(const char * sz);
 wxString UTF82String(const char * sz);\r
 wxString WC2String(const wchar_t * sz);\r
 \r
+inline void RemoveCwdFromSearchPath(void)\r
+{\r
+#ifdef __WINDOWS__\r
+       static void * p = ::GetProcAddress(::GetModuleHandleW(L"kernel32.dll"), "SetDllDirectoryW");\r
+       if (p != NULL)\r
+       {\r
+               ((int (__stdcall *)(const wchar_t *)) p)(L"");\r
+       }\r
+#endif\r
+}\r
+\r
 #include <wx/xml/xml.h>\r
 #ifndef WXWIN_COMPATIBILITY_2_8\r
 #define GetAttribute GetPropVal\r
index 2cf5a30..206da5c 100644 (file)
@@ -734,6 +734,7 @@ int __stdcall LoadPlugin
        wxULongLong_t _nTypeId\r
 )\r
 {\r
+       ::RemoveCwdFromSearchPath();\r
        g_hLib.Load(LIB_NAME);\r
        if (! g_hLib.IsLoaded())\r
        {\r
index 7fc1012..fa98f48 100644 (file)
@@ -454,6 +454,7 @@ int __stdcall LoadPlugin
 \r
        // 対象が存在するならば対応するライブラリを調査、\r
        // 対象が存在しないならば指示されたライブラリをロード。\r
+       ::RemoveCwdFromSearchPath();\r
        if (! ::wxFileExists(_szArcName))\r
        {\r
                // 適当な位置まで移動。\r
index 9b2e6a6..da0fbdd 100644 (file)
@@ -209,6 +209,7 @@ int __stdcall LoadPlugin
        wxULongLong_t\r
 )\r
 {\r
+       ::RemoveCwdFromSearchPath();\r
        g_hLib = ::LoadLibrary(L"UnEGG32.dll");\r
        if (g_hLib == NULL)\r
        {\r
index 0dd9348..3a8f5e4 100644 (file)
@@ -190,6 +190,7 @@ int __stdcall LoadPlugin
        wxULongLong_t\r
 )\r
 {\r
+       ::RemoveCwdFromSearchPath();\r
        g_hLib.Load(g_hLib.CanonicalizeName(wxT("unrar")));\r
        if (! g_hLib.IsLoaded())\r
        {\r