一、现象
VS2015编译的动态库(比如parse.dll),在win10上可以正常使用,在Win7或XP上使用的时候,LoadLibrary()失败,GetLastError返回193,指的是“不是有效的win32应用程序”。
二、解决思路
这种错误一般是由于缺少依赖库导致的,用依赖库查看工具,查看parse.dll的依赖库,并添加到parse.dll所在目录。另外还有可能32位exe加载64位dll导致。
三、解决步骤
1.查看parse.dll的依赖库(可通过delphi tdump.exe依赖查看工具或第三方工具),发现依赖6个,分别为msvcp140.dll、vcruntime140.dll、api-ms-win-crt-runtime-l1-1-0.dll、api-ms-win-crt-stdio-l1-1-0.dll、api-ms-win-crt-heap-l1-1-0.dll和kernel32.dll,kernel32是系统自带的动态库,不需要添加到目录下,把剩下5个库放到parse.dll所在目录下。
2.再次运行,问题依旧。
3.分别查看msvcp140.dll和vcruntime140.dll依赖的库,然后添加到parse.dll所在目录。
4.再次运行,问题解决!
不是有效的win32应用程序
最新推荐文章于 2023-06-01 11:54:21 发布