奇怪的Excel的插件错误

我正在用xlw的帮助来使用C ++为excel构buildxll插件。 它可以在我的PC和一些用户上正常工作,但是在其他一些用户中,当我将xll拖到一个新的excel窗口时,出现错误:

您尝试打开的文件“my_plug_in.xll”与文件扩展名指定的文件不同。 打开文件之前,validation该文件是否已损坏并且来自受信任的来源。 你想现在打开文件吗?

如果单击是,Excel将打开xll作为文本文件显示类似的东西

“MZÿÿ¸@Í!¸LÍ!这个程序不能在DOS模式下运行。”

在第一行。 这不是预期的。

可能是什么原因? 操作系统都是windows 7 professional,64bit,excel都是Excel 2010(32位)。

总而言之,错误代码:“这个程序不能在DOS模式下运行”通常与以下问题之一有关:

  • xll是用/ MD标志build立的,但最终用户没有所需的CRT dll。
  • xll的错误体系结构(例如:Excel 32位的x64 xll)。
  • 缺less外部DLL。
  • 使用/ MD标志构build的外部DLL。 在这种情况下,如果最终用户具有正确版本的CRT(用于构build此外部DLL的那个版本),则不存在任何问题。 否则,它将无法正常工作。 我认为这是你的情况。 我强烈build议你用/ MT标志重build你的外部DLL(如果可能的话),或者直接把你的xll与第三方组件的静态 .lib文件直接链接起来。