OSDN Git Service

設定ファイルのパス取得をLycheeに依存しない形に改良した実験用コードを追加。
authorsirakaba <sirakaba@9df91469-1e22-0410-86e7-ea8537beb833>
Mon, 20 Feb 2012 08:40:51 +0000 (08:40 +0000)
committersirakaba <sirakaba@9df91469-1e22-0410-86e7-ea8537beb833>
Mon, 20 Feb 2012 08:40:51 +0000 (08:40 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/tpi/tpi@600 9df91469-1e22-0410-86e7-ea8537beb833

src/common/library/xmldoc.h

index f6ed5a4..4427a02 100644 (file)
@@ -47,3 +47,35 @@ wxString inline myMakeXMLName(const wxString & szFile)
 {\r
        return wxPathOnly(wxStandardPaths::Get().GetExecutablePath()) + wxT("/lib/") + szFile + wxT(".xml");\r
 }\r
+\r
+#ifdef MYUSE_CONFIG\r
+wxString g_szLibPath;\r
+\r
+wxString inline myMakeXMLName(const wxString & szFile)\r
+{\r
+       return g_szLibPath + szFile + wxT(".xml");\r
+}\r
+\r
+#ifdef __WINDOWS__\r
+BOOL WINAPI DllMain(HINSTANCE hLib, DWORD dwReason, void *)\r
+{\r
+       if (dwReason == DLL_PROCESS_ATTACH)\r
+       {\r
+               wchar_t szName[1024];\r
+               ::GetModuleFileName(hLib, szName, sizeof(szName) - 1);\r
+               g_szLibPath = wxFileName::wxFileName(WC2String(szName)).GetPath(true);\r
+       }\r
+       return TRUE;\r
+}\r
+#else\r
+#define _GNU_SOURCE\r
+#include <dlfcn.h>\r
+\r
+__attribute__((constructor)) void on_load(void)\r
+{\r
+       Dl_info dl;\r
+       dladdr(on_load, & dl);\r
+       g_szLibPath = wxFileName::wxFileName(UTF82String(dl.dli_fname)).GetPath(true);\r
+}\r
+#endif\r
+#endif\r