windows – 使用太多静态链接的CRT解决fls限制?
发布时间:2020-12-14 02:48:05 所属栏目:Windows 来源:网络整理
导读:当通过LoadLibrary加载外部DLL(不在我们的控制之下)时,我们遇到的问题是这些DLL中的静态链接CRT无法分配光纤本地存储.这类似于 mskb 193462,除了这是FLS并且只有128个. 有没有有用的方法来解决这个问题? CRT正在使用GetProcAddress来查找FlsAlloc(因为这显
当通过LoadLibrary加载外部DLL(不在我们的控制之下)时,我们遇到的问题是这些DLL中的静态链接CRT无法分配光纤本地存储.这类似于
mskb 193462,除了这是FLS并且只有128个.
有没有有用的方法来解决这个问题? CRT正在使用GetProcAddress来查找FlsAlloc(因为这显然从未在XP中存在过),所以它甚至真的需要它吗? (这是在Vista上,其中FlsAlloc实际存在; DLL似乎使用MSVC8) 解决方法
坦率地说,没有解决方案,没有加载更少的dll.
您可以挂钩dll的导入地址表 – 但这种情况发生得太晚,因为您只能在LoadLibrary返回时安装IAT挂钩,并且CRT初始化代码可能会执行以响应已经处理过的DllProcessAttach. 您可以猜测在内存中找到kernel32.dll模块,并修补GetProcAddress的导出地址或者修补FlsAlloc以指向您的实现.但这种做法变得非常严重. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows-event-log – 在应用程序回收发生时记录工作进程请
- Windows本地管理员权限最佳做法
- .net – 自定义UI – Windows还是Linux?
- Windows.event未定义 – Firefox中的JavaScript错误
- WIN10下,JAVA安装及环境变量配置(cmd可以运行java,却不能
- windows-server-2008 – 在VMware ESX上部署SQL Server 200
- Windows Phone 7 – Windows Phone开发Visual Studio 2012
- windows-phone-8 – 水平拉伸 – 组头ListView
- 如何监控Windows上的CPU缓存?
- win10串口调试