From 0b8444d0eef50d1ee4e0d0b51e174fa5b447d802 Mon Sep 17 00:00:00 2001
From: xj qian <qianxj15@sina.com>
Date: 星期三, 17 七月 2024 17:50:35 +0800
Subject: [PATCH] base code

---
 jrj/xframe/wobject/xutil.hpp |   32 ++++++++++++++++++++++++++++++--
 1 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/jrj/xframe/wobject/xutil.hpp b/jrj/xframe/wobject/xutil.hpp
index e20ef30..5a702e7 100644
--- a/jrj/xframe/wobject/xutil.hpp
+++ b/jrj/xframe/wobject/xutil.hpp
@@ -2,8 +2,13 @@
 
 #include "xbase.hpp"
 #include "kobject/kutil.hpp"
+#include "wobject/xaserver.hpp"
+#include "win32/win.hpp"
 
 using kutil = Hxsoft::XFrame::IXFUtil;
+extern "C" {
+    void* WINAPI  GetProcAddressW(HMODULE hModule, const char* lpText);
+}
 class xutil
 {
 public:
@@ -32,9 +37,9 @@
         return kutil::CacheUrlData((LPWSTR)url,(LPWSTR)data);
     }
 
-    static int SaveToFile(const LPTSTR pFile,const LPTSTR pData,const LPTSTR ext, const LPTSTR pFilter, const LPTSTR pFileName=NULL)
+    static int SaveToFile(xstring pFile,xstring pData,xstring ext, xstring pFilter, const LPTSTR pFileName=NULL)
     {
-        return kutil::SaveToFile((LPWSTR)pFile,(LPWSTR)pData,(LPWSTR)ext,(LPWSTR)pFileName);
+        return kutil::SaveToFile((LPWSTR)pFile.c_str(), (LPWSTR)pData.c_str(), (LPWSTR)ext.c_str(), (LPWSTR)pFileName);
     }
     static LPWSTR MD5(const wchar_t* pStr)
     {
@@ -53,4 +58,27 @@
         return Hxsoft::XUtil::FormatDecimalString(str, format, bfree);
     }
 
+public:
+    static xstring GetModulePath()
+    {
+        wchar_t buf[255];
+        ::GetModuleFileNameW(nullptr, buf, 255);
+        PathRemoveFileSpec(buf);
+        return xstring(buf);
+    }
+
+    static xstring GetModuleTmpPath()
+    {
+        xstring tmp = GetModulePath() + L"\\Temp";
+        xaserver::CreateDirectory(tmp);
+        return tmp;
+    }
+
+    static void* GetFuncPtr(const wchar_t* dll, const char* name)
+    {
+        void* fnAttachEvent = nullptr;
+        HMODULE hModule = LoadLibraryW(dll);
+        if (hModule)fnAttachEvent = ::GetProcAddressW(hModule, name);
+        return fnAttachEvent;
+    }
 };
\ No newline at end of file

--
Gitblit v1.9.3