工作中碰到的关于丢失【MFPLAT.DLL】【api-ms-win-******】的问题及其他并发症

本文讲述了在将本地开发的程序移植到WINSERVER X64服务器上遇到的DLL缺失问题,特别是api-ms-win-crt-runtime-l1-1-0.dll和MFPLAT.DLL的缺失。通过查找并安装正确的C++运行库,最终解决了问题。

起因:本地开发调完成的程序放到 WIN SERVER  X64服务器上去,发现开不起来,提示错误说丢失api-ms-win-crt-runtime-l1-1-0.dll。

一、从网上DOWN了一个DLL,放到SYSTEMWOW64下,还是不行,还是提示丢DLL,只不过换了一个名,由此感觉可能是少装了什么基础库。

二、网上资料一顿猛查,发现是C++运行库没装,或者没装全,也可能是损坏了。下载安装,哎?提示又变了!!!

C++运行库下载链接在此:

https://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x64.exe

 

然后提示MFPLAT.DLL丢失,这个是一个大坑,网上资料很多就是其他最全是这一篇告诉我们这个文件有很多使用

http://www.dllzj.com/mfplat.dll/

我们把多找找自己能用的版本。

我最后能用的这个链接下的https://ftp-idc.pconline.com.cn/pub/download/201010/pconline1477687167897.rar?md5=1qwIeu2l7QfZzj6PZgaExg&expires=1589281740

root@ubuntu22:~/FPGAs_AdaptiveSoCs_Unified_2024.1_0522_2023# ls api-ms-win-core-console-l1-1-0.dll api-ms-win-core-synch-l1-1-0.dll bin api-ms-win-core-datetime-l1-1-0.dll api-ms-win-core-synch-l1-2-0.dll concrt140.dll api-ms-win-core-debug-l1-1-0.dll api-ms-win-core-sysinfo-l1-1-0.dll data api-ms-win-core-errorhandling-l1-1-0.dll api-ms-win-core-timezone-l1-1-0.dll installLibs.sh api-ms-win-core-file-l1-1-0.dll api-ms-win-core-util-l1-1-0.dll lib api-ms-win-core-file-l1-2-0.dll api-ms-win-crt-conio-l1-1-0.dll msvcp140_1.dll api-ms-win-core-file-l2-1-0.dll api-ms-win-crt-convert-l1-1-0.dll msvcp140_2.dll api-ms-win-core-handle-l1-1-0.dll api-ms-win-crt-environment-l1-1-0.dll msvcp140.dll api-ms-win-core-heap-l1-1-0.dll api-ms-win-crt-filesystem-l1-1-0.dll payload api-ms-win-core-interlocked-l1-1-0.dll api-ms-win-crt-heap-l1-1-0.dll scripts api-ms-win-core-libraryloader-l1-1-0.dll api-ms-win-crt-locale-l1-1-0.dll tps api-ms-win-core-localization-l1-2-0.dll api-ms-win-crt-math-l1-1-0.dll ucrtbase.dll api-ms-win-core-memory-l1-1-0.dll api-ms-win-crt-multibyte-l1-1-0.dll vccorlib140.dll api-ms-win-core-namedpipe-l1-1-0.dll api-ms-win-crt-private-l1-1-0.dll vcruntime140_1.dll api-ms-win-core-processenvironment-l1-1-0.dll api-ms-win-crt-process-l1-1-0.dll vcruntime140.dll api-ms-win-core-processthreads-l1-1-0.dll api-ms-win-crt-runtime-l1-1-0.dll xsetup api-ms-win-core-processthreads-l1-1-1.dll api-ms-win-crt-stdio-l1-1-0.dll xsetup.exe api-ms-win-core-profile-l1-1-0.dll api-ms-win-crt-string-l1-1-0.dll xsetup.exe.manifest api-ms-win-core-rtlsupport-l1-1-0.dll api-ms-win-crt-time-l1-1-0.dll api-ms-win-core-string-l1-1-0.dll api-ms-win-crt-utility-l1-1-0.dll 这是linux版本还是windows版本
最新发布
07-19
要判断一个文件列表中的文件是属于 Linux 还是 Windows 系统版本,可以从文件路径的格式、文件扩展名以及文件内容等多个方面进行分析。 ### 1. 文件路径格式 - **Windows 路径**:通常使用反斜杠 `\` 作为路径分隔符,例如 `C:\Program Files\Example\file.txt`。在某些情况下,路径可能以盘符开头(如 `C:`、`D:`)。 - **Linux 路径**:通常使用正斜杠 `/` 作为路径分隔符,例如 `/home/user/example/file.txt`。Linux 路径通常以根目录 `/` 开头,且没有盘符的概念。 可以通过检查路径中的分隔符来判断系统类型。例如,如果路径中包含 `\`,则可能是 Windows 系统;如果路径中包含 `/`,则可能是 Linux 系统。这种方法虽然不是绝对可靠,但在大多数情况下可以提供一定的线索。 ```python import os def detect_os_from_path(path): if '\\' in path: return 'Windows' elif '/' in path: return 'Linux' else: return 'Unknown' ``` ### 2. 文件扩展名 - **Windows 文件**:常见的可执行文件扩展名为 `.exe`、`.dll` 等。 - **Linux 文件**:可执行文件通常没有特定的扩展名,但脚本文件可能以 `.sh` 结尾,而动态库文件通常以 `.so` 结尾。 通过检查文件的扩展名,可以推测该文件是否为特定平台的可执行文件或库文件。例如,如果文件以 `.exe` 结尾,则很可能是 Windows 可执行文件;如果文件以 `.so` 结尾,则很可能是 Linux 动态库文件。 ### 3. 文件内容分析 对于某些文件类型,仅凭文件路径和扩展名可能无法准确判断其所属的操作系统。此时可以通过分析文件内容来进一步确认。 - **ELF 文件**:Linux 系统上的可执行文件和共享库通常是 ELF(Executable and Linkable Format)格式。可以通过检查文件的魔数(magic number)来判断是否为 ELF 文件。ELF 文件的魔数为 `7F 45 4C 46`(即 ASCII 中的 `\x7fELF`)。 ```python def is_elf_file(file_path): try: with open(file_path, 'rb') as f: magic = f.read(4) return magic == b'\x7fELF' except Exception: return False ``` - **PE 文件**:Windows 系统上的可执行文件通常是 PE(Portable Executable)格式。PE 文件的魔数为 `4D 5A`(即 ASCII 中的 `MZ`),并且在文件偏移 0x3C 处有一个指向 PE 头的指针。 ```python def is_pe_file(file_path): try: with open(file_path, 'rb') as f: magic = f.read(2) if magic != b'MZ': return False f.seek(0x3C) pe_offset = int.from_bytes(f.read(4), byteorder='little') f.seek(pe_offset) pe_magic = f.read(4) return pe_magic == b'PE\x00\x00' except Exception: return False ``` ### 4. 文件属性和元数据 在某些情况下,文件的元数据也可以提供线索。例如,在 Linux 系统中,文件的权限信息、所有者和组等信息可以通过 `ls -l` 命令查看;而在 Windows 系统中,文件的属性可以通过 `dir` 命令查看。此外,文件的时间戳格式也可能有所不同。 ### 5. 工具辅助分析 除了手动分析外,还可以使用一些工具来帮助判断文件所属的操作系统。例如: - **file 命令**(Linux):可以用来识别文件的类型,包括是否为 ELF 或 PE 文件- **Dependency Walker**(Windows):可以用来分析 Windows 可执行文件的依赖关系,帮助判断文件是否为 Windows 平台的可执行文件。 ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值