You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

64位可执行程序加载WebView2Loader.dll失败问题求助

Hey,这个问题我之前碰到过,一眼就看出是32位/64位 DLL 架构不匹配搞的鬼,给你几个靠谱的解决思路:

解决64位程序加载WebView2Loader.dll失败的思路
  • 检查DLL的架构匹配性
    你看到的错误提示%1 is not a valid Win32 application本质是64位程序尝试加载32位DLL导致的。要确保你用的WebView2Loader.dllx64版本

    • 如果是手动放在程序目录,去WebView2 SDK的x64子目录下提取对应DLL,别拿x86版本凑数;
    • 如果是用Evergreen Runtime,必须安装x64版本的Runtime,32位Runtime和64位程序完全不兼容。
  • 精准指定DLL加载路径
    Windows的DLL搜索顺序可能导致64位程序误加载系统里已有的32位DLL。你可以改用LoadLibraryEx指定绝对路径来测试,比如:

    Windows.LoadLibraryEx(PChar('C:\YourApp\bin\x64\WebView2Loader.dll'), 0, LOAD_WITH_ALTERED_SEARCH_PATH);
    

    先确认绝对路径下的正确DLL能加载成功,再排查路径搜索的问题。

  • 验证Evergreen Runtime的安装状态
    64位系统上,x64版本的WebView2 Runtime会安装在C:\Program Files\Microsoft\EdgeWebView2\Application\路径下,而32位版本在Program Files (x86)目录。你可以:

    • 打开「控制面板→程序和功能」,确认存在「Microsoft Edge WebView2 Runtime (x64)」条目;
    • 如果没有,重新下载对应架构的Evergreen安装包并安装,别选错位数。
  • 检查项目编译配置
    确保你的64位程序确实是按x64架构编译的:

    • 在你使用的IDE里,确认项目的目标平台设置为Win64,而不是Win32或者模糊的“Any CPU”;
    • 检查输出目录里的所有依赖文件,确保没有混入32位的DLL。
  • 用工具确认DLL架构
    可以用VS自带的dumpbin工具验证DLL的位数:

    dumpbin /headers WebView2Loader.dll
    

    查看输出中的machine字段,x64版本会显示x64,x86版本显示x86。如果发现是x86的DLL,直接替换成x64版本即可。


内容的提问来源于stack exchange,提问作者Tom

火山引擎 最新活动