我正在使用 C++ 为 Excel 构建 XLL 加载项XLW库.
它在我的电脑和许多其他电脑上运行良好。但在某些情况下,当我将 XLL 拖到新的 Excel 窗口中时,会出现以下错误:
您尝试打开的文件“my_addin.xll”位于不同的路径中
格式不同于文件扩展名指定的格式。验证该文件是否是
在打开文件之前未损坏且来自可信来源。做
您想现在打开该文件吗?
如果点击yes
,然后 Excel 会将 XLL 作为文本文件打开,显示如下内容:
MZÿÿ¸@ Í!¸LÍ!此程序不能在 DOS 模式下运行。
就在第一排。预计不会发生这种情况。原因可能是什么?
这是所有机器的系统配置:
- Microsoft Windows 7 Professional 64 位(操作系统)
- 微软 Excel 2010 32 位
总结一下,错误代码This program cannot be run in DOS mode.
通常与以下问题之一有关:
XLL 是用/MD
标志,但最终用户没有所需的 CRT DLL。
XLL是用错误的平台编译的;例如平台x64
用于构建 XLL,然后将其加载到 32 位 Excel 中(反之亦然)。
缺少外部 DLL 依赖项。
有一个外部 DLL 依赖项是用/MD
标志(运行时库的多线程特定和 DLL 特定版本)。在这种情况下,如果最终用户拥有正确版本的 CRT(用于构建外部 DLL 的版本),则不会出现问题。否则,强烈建议使用以下命令重建外部 DLL(如果可能)/MT
flag(多线程,运行时库的静态版本)。或者甚至更好,将其静态链接到 XLL(使用静态 .lib 文件作为第三方组件构建的输出)。
我相信最后一种情况可能就是你的情况。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)