Windows软件到底由哪些文件组成一文看懂exe、dll、注册表!
今天试了删掉一个程序的exe,图标没了,但后台服务还在跑。查了下,原来Windows启动它的时候,早把代码塞进内存了,硬盘上那个只是个“引子”。
dll文件更玄乎。有时候少一个,程序点开就闪退,连错误提示都不给,直接报个0xC0000135。用Process Explorer一看,果然是某个dll没加载上——不是不见了,是版本对不上,函数地址变了,程序调着调着就跳歪了。
注册表才是真·户口本。改了个路径,软件就找不到配置;重装后不导注册表,连文件双击打开都失效。绿色版能跑,纯粹是因为它压根没去碰注册表,也不搞COM,更不写系统级服务。
缓存文件看着占地方,但乱删也出事。比如WinSxS目录,看着几百G,手动删了系统可能直接打不了补丁。DISM命令才是正解,可惜大多数人连这词都没听过。
Temp里一堆.tmp,看着就烦,但有些是VS编译时锁着的,删一半会卡死。最稳的办法是重启后再清。
Event Viewer里随便点开一个1000号错误,基本就是exe挂了,下面还跟着dll和模块名。比任何弹窗都准。
现在我装软件前,先用ProcMon抓十分钟,看它往哪写、读哪、连什么注册表——比看说明书管用。
删软件,真不是删文件夹那么简单。



