PHP的windows发行版中有哪些36字节长的*.dll文件?符号链接?怎么用?
在linux/unix世界中,symlink*。因此文件被广泛使用。也就是说,通常会看到libfoo.so和libfoo.so.X文件只是libfoo.so.X.Y.Z(常规文件)的符号链接。我从来没有在Windows上这样做过(尽管Windows符号链接) 尽管如此,当我最近下载PHP二进制Windows发行版时,我看到了非常相似的图片:PHP的windows发行版中有哪些36字节长的*.dll文件?符号链接?怎么用?,windows,linker,symlink,dll,Windows,Linker,Symlink,Dll,在linux/unix世界中,symlink*。因此文件被广泛使用。也就是说,通常会看到libfoo.so和libfoo.so.X文件只是libfoo.so.X.Y.Z(常规文件)的符号链接。我从来没有在Windows上这样做过(尽管Windows符号链接) 尽管如此,当我最近下载PHP二进制Windows发行版时,我看到了非常相似的图片: icudt.dll(大小仅为36字节) icudt46.dll(正常大小) icudt49.dll(正常大小) icuuc.dll(大小仅为36字节) i
- icudt.dll(大小仅为36字节)
- icudt46.dll(正常大小)
- icudt49.dll(正常大小)
- icuuc.dll(大小仅为36字节)
- icuuc46.dll(正常大小)
- icuuc49.dll(正常大小)
- 等等
!<symlink>яюi_c_u_d_t_4_9_._d_l_l___
!我想我会的___
(“ю”在这里是指“\x0”,“ю”在这里是指“\xFF\xFE”)
这些类似符号链接的DLL应该如何工作
- windows可以像处理普通DLL一样处理它们吗
- 或者WinAPI中针对此类DLL的一些特殊函数
- 还是只有PHP才能识别这样的DLL?
- 也许PHP源代码的编写方式是显式读取和分析每个DLL以解析此类伪符号链接
注2:在C:\Windows目录中未找到此类小型DLL。Windows不会将这些文件识别为DLL或任何类型的DLL链接。正如Hans Passant正确地指出的,它是Cygwin特定的文件,只有基于Cygwin的构建才会将它们识别为Cygwin框架的符号链接,而不是Windows操作系统的符号链接 如果您尝试在任何标准Win32 API中使用它们,您将收到一系列加载错误,声称可执行文件的格式无效。PHP是由VC9编译的这一事实并不意味着VC9创建了有问题的文件,因为它们很可能是通过某个Cygwin工具准备的 另外,Windows的最小可执行文件大小为97字节,如上所述