diff -bur rcedit-2.0.0-o/src/rescle.cc rcedit-2.0.0/src/rescle.cc
--- rcedit-2.0.0-o/src/rescle.cc	2025-04-13 10:50:49.524397300 -0600
+++ rcedit-2.0.0/src/rescle.cc	2025-04-13 10:52:57.542408100 -0600
@@ -8,7 +8,6 @@
 #include "rescle.h"
 
 #include <assert.h>
-#include <atlstr.h>
 #include <sstream> // wstringstream
 #include <iomanip> // setw, setfill
 #include <fstream>
@@ -85,7 +84,7 @@
 
 std::wstring ReadFileToString(const wchar_t* filename) {
   std::wifstream wif(filename);
-  wif.imbue(std::locale(std::locale::empty(), new std::codecvt_utf8<wchar_t>));
+  wif.imbue(std::locale(std::locale(), new std::codecvt_utf8<wchar_t>));
   std::wstringstream wss;
   wss << wif.rdbuf();
   return wss.str();
@@ -881,7 +880,7 @@
   ResourceUpdater* instance = reinterpret_cast<ResourceUpdater*>(lParam);
   if (IS_INTRESOURCE(lpszName) && IS_INTRESOURCE(lpszType)) {
     switch (reinterpret_cast<ptrdiff_t>(lpszType)) {
-      case reinterpret_cast<ptrdiff_t>(RT_VERSION): {
+      case (ptrdiff_t)(16): {
         try {
           instance->versionStampMap_[wIDLanguage] = VersionInfo(instance->module_, wIDLanguage);
         } catch (const std::system_error& e) {
@@ -889,30 +888,33 @@
         }
         break;
       }
-      case reinterpret_cast<ptrdiff_t>(RT_STRING): {
+      case (ptrdiff_t)(6): {
         UINT id = reinterpret_cast<ptrdiff_t>(lpszName) - 1;
         auto& vector = instance->stringTableMap_[wIDLanguage][id];
         for (size_t k = 0; k < 16; k++) {
-          CStringW buf;
-
-          buf.LoadStringW(instance->module_, id * 16 + k, wIDLanguage);
-          vector.push_back(buf.GetBuffer());
+          WCHAR buffer[1024] = {0};
+          int len = LoadStringW(instance->module_, id * 16 + k, buffer, 1024);
+          if (len > 0) {
+            vector.push_back(std::wstring(buffer, len));
+          } else {
+            vector.push_back(std::wstring());
+          }
         }
         break;
       }
-      case reinterpret_cast<ptrdiff_t>(RT_ICON): {
+      case (ptrdiff_t)(3): {
         UINT iconId = reinterpret_cast<ptrdiff_t>(lpszName);
         UINT maxIconId = instance->iconBundleMap_[wIDLanguage].maxIconId;
         if (iconId > maxIconId)
           maxIconId = iconId;
         break;
       }
-      case reinterpret_cast<ptrdiff_t>(RT_GROUP_ICON): {
+      case (ptrdiff_t)(14): {
         UINT iconId = reinterpret_cast<ptrdiff_t>(lpszName);
         instance->iconBundleMap_[wIDLanguage].iconBundles[iconId] = nullptr;
         break;
       }
-      case reinterpret_cast<ptrdiff_t>(RT_RCDATA): {
+      case (ptrdiff_t)(10): {
         const auto moduleHandle = HMODULE(hModule);
         HRSRC hResInfo = FindResource(moduleHandle, lpszName, lpszType);
         DWORD cbResource = SizeofResource(moduleHandle, hResInfo);
