diff --git a/openless-all/app/windows-ime/OpenLessIme.vcxproj b/openless-all/app/windows-ime/OpenLessIme.vcxproj
index 2bbe9feb..956cd1fa 100644
--- a/openless-all/app/windows-ime/OpenLessIme.vcxproj
+++ b/openless-all/app/windows-ime/OpenLessIme.vcxproj
@@ -75,6 +75,12 @@
WIN32;_WINDOWS;_USRDLL;OPENLESSIME_EXPORTS;%(PreprocessorDefinitions)
true
stdcpp17
+
+ MultiThreadedDebug
Windows
@@ -89,6 +95,7 @@
WIN32;_WINDOWS;_USRDLL;OPENLESSIME_EXPORTS;%(PreprocessorDefinitions)
true
stdcpp17
+ MultiThreadedDebug
Windows
@@ -105,6 +112,7 @@
WIN32;NDEBUG;_WINDOWS;_USRDLL;OPENLESSIME_EXPORTS;%(PreprocessorDefinitions)
true
stdcpp17
+ MultiThreaded
Windows
@@ -123,6 +131,7 @@
WIN32;NDEBUG;_WINDOWS;_USRDLL;OPENLESSIME_EXPORTS;%(PreprocessorDefinitions)
true
stdcpp17
+ MultiThreaded
Windows
diff --git a/openless-all/app/windows-ime/src/dllmain.cpp b/openless-all/app/windows-ime/src/dllmain.cpp
index 84476ba2..624c79f7 100644
--- a/openless-all/app/windows-ime/src/dllmain.cpp
+++ b/openless-all/app/windows-ime/src/dllmain.cpp
@@ -13,9 +13,13 @@ LONG g_object_count = 0;
BOOL APIENTRY DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved) {
UNREFERENCED_PARAMETER(reserved);
+ // 不调用 DisableThreadLibraryCalls:DLL 现在用 /MT 静态链接 CRT,CRT 需要
+ // DLL_THREAD_ATTACH / DLL_THREAD_DETACH 通知做 per-thread TLS 初始化与清理。
+ // 在 host 进程(如 QQ / Office)切输入法新建 input thread 时禁用通知,会让
+ // 静态 CRT 的 thread-local 资源泄漏 / 行为不稳定,反而把这次想修的崩溃问题
+ // 重新引回来。详见 Microsoft 文档 DisableThreadLibraryCalls 备注。
if (reason == DLL_PROCESS_ATTACH) {
g_module = instance;
- DisableThreadLibraryCalls(instance);
}
return TRUE;