如何阻止 GLScene GLSceneViewer 组件崩溃 Delphi 10.3 IDE?
How to stop GLScene GLSceneViewer component crashing Delphi 10.3 IDE?
我正在将现有的 GLScene 应用程序更新到 Delphi 10.3。我已经安装了最新的 GLScene(来自 https://sourceforge.net/projects/glscene/),但是 TGLSceneViewer 组件导致错误。
即使在一个新项目中,当我将 TGLSceneViewer 拖放到表单上时,我也会收到 Loadlibrary failed with error 126;
按 'OK' 和 Delphi 崩溃返回 Windows 桌面;它会在没有任何对话或错误的情况下杀死 IDE。 (可以看到,已经放置的TGLScene组件GLScene1没有报错。)
我已使用 ProcessMonitor 尝试找出问题所在(根据对 LoadLibrary 126 错误的响应);
因此似乎缺少错误 'd.DLL'。那一定是一个无效的 dll 名称所以是否存在安装问题?
有人遇到过这个问题吗?谢谢!
更新:
所以我研究了 GLScene 源代码,试图找到可能与 'd.DLL'.
相关的参考资料
在下面的屏幕截图中('Messages' 部分)在 CUDA_Runtime.pas 和 CUDA.FourierTransform.pas。有可能这些可以创建名称 'd.DLL' 除了 'DLL' 在代码中没有大写?!我只是在这里四处寻找解决方案。
同样有趣的是,文件 'Imports.Newton.pas' 引用了四个未包含在安装外部文件夹中的 dll 文件;
newton32d.dll、newton32s.dll、newton64d.dll 和 newton64s.dll
同样,我不知道这是否与 TGLSceneViewer 在设计模式下成功加载有关。
再次感谢您的帮助。
您的系统似乎没有正确安装 GLScene。
根据您似乎缺少必需的动态库这一事实,我猜您已经跳过了 2. 步骤 Instalation instructions for GLSCeene
您应该始终阅读随附的文档。当您将应用程序分发给最终用户时,这一点尤为重要,因为文档中包含有关依赖项的详细信息,这些依赖项需要随您的应用程序一起提供才能正常运行。
所以在多次尝试确定 'd.DLL' 是什么之后,我将其缩小到 'PhysXwrap32.dll' 因为通过将其重命名为 'd.dll' 我得到了一个不同的(访问冲突)错误,即事情有所进展!事实上,'earth.exe' 演示程序 运行 在将 d.dll 放入 exe 文件夹并忽略启动时的访问冲突错误后,在某种程度上(无纹理)。
无论如何,它显然是一团糟所以我尝试了一些其他的 GLScene 安装。在 Delphi 10.3 IDE 中完全安装了所有版本,并注册了软件包和可用的组件,但在将 TGLSceneViewer 拖放到表单上时,我仍然收到 Loadlibrary 错误 126。
最终我找到并安装了 'GLScene_v1.8_for_RX_10.3_Rio.7z' 并且终于没有得到那个 126 错误!我得到了另一个错误,Loadlibrary error 87。这通常与图形驱动程序问题有关。因此,根据各种帖子,我禁用了板载 Intel 630 显卡并确保 AMD 驱动程序是最新的。
重启后终于可以使用TGLSceneViewer了!
所以我安装了 GLScene v1.8 并在 Delphi 10.3 上工作。也许显卡冲突也与 GLScene v2 的问题有关,但它显示了不同的错误(Loadlibrary 126 而不是 87)。有空我试试看,哈哈
感谢您的帮助和关注。
我正在将现有的 GLScene 应用程序更新到 Delphi 10.3。我已经安装了最新的 GLScene(来自 https://sourceforge.net/projects/glscene/),但是 TGLSceneViewer 组件导致错误。
即使在一个新项目中,当我将 TGLSceneViewer 拖放到表单上时,我也会收到 Loadlibrary failed with error 126;
按 'OK' 和 Delphi 崩溃返回 Windows 桌面;它会在没有任何对话或错误的情况下杀死 IDE。 (可以看到,已经放置的TGLScene组件GLScene1没有报错。)
我已使用 ProcessMonitor 尝试找出问题所在(根据对 LoadLibrary 126 错误的响应);
因此似乎缺少错误 'd.DLL'。那一定是一个无效的 dll 名称所以是否存在安装问题?
有人遇到过这个问题吗?谢谢!
更新:
所以我研究了 GLScene 源代码,试图找到可能与 'd.DLL'.
相关的参考资料在下面的屏幕截图中('Messages' 部分)在 CUDA_Runtime.pas 和 CUDA.FourierTransform.pas。有可能这些可以创建名称 'd.DLL' 除了 'DLL' 在代码中没有大写?!我只是在这里四处寻找解决方案。
同样有趣的是,文件 'Imports.Newton.pas' 引用了四个未包含在安装外部文件夹中的 dll 文件; newton32d.dll、newton32s.dll、newton64d.dll 和 newton64s.dll
同样,我不知道这是否与 TGLSceneViewer 在设计模式下成功加载有关。
再次感谢您的帮助。
您的系统似乎没有正确安装 GLScene。
根据您似乎缺少必需的动态库这一事实,我猜您已经跳过了 2. 步骤 Instalation instructions for GLSCeene
您应该始终阅读随附的文档。当您将应用程序分发给最终用户时,这一点尤为重要,因为文档中包含有关依赖项的详细信息,这些依赖项需要随您的应用程序一起提供才能正常运行。
所以在多次尝试确定 'd.DLL' 是什么之后,我将其缩小到 'PhysXwrap32.dll' 因为通过将其重命名为 'd.dll' 我得到了一个不同的(访问冲突)错误,即事情有所进展!事实上,'earth.exe' 演示程序 运行 在将 d.dll 放入 exe 文件夹并忽略启动时的访问冲突错误后,在某种程度上(无纹理)。
无论如何,它显然是一团糟所以我尝试了一些其他的 GLScene 安装。在 Delphi 10.3 IDE 中完全安装了所有版本,并注册了软件包和可用的组件,但在将 TGLSceneViewer 拖放到表单上时,我仍然收到 Loadlibrary 错误 126。
最终我找到并安装了 'GLScene_v1.8_for_RX_10.3_Rio.7z' 并且终于没有得到那个 126 错误!我得到了另一个错误,Loadlibrary error 87。这通常与图形驱动程序问题有关。因此,根据各种帖子,我禁用了板载 Intel 630 显卡并确保 AMD 驱动程序是最新的。
重启后终于可以使用TGLSceneViewer了!
所以我安装了 GLScene v1.8 并在 Delphi 10.3 上工作。也许显卡冲突也与 GLScene v2 的问题有关,但它显示了不同的错误(Loadlibrary 126 而不是 87)。有空我试试看,哈哈
感谢您的帮助和关注。