Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;Excel加载项加载错误:Excel将XLL文件作为文本文件加载_C++_Excel_Xll_Xlw - Fatal编程技术网

C++ C++;Excel加载项加载错误:Excel将XLL文件作为文本文件加载

C++ C++;Excel加载项加载错误:Excel将XLL文件作为文本文件加载,c++,excel,xll,xlw,C++,Excel,Xll,Xlw,我用C++和./p>构建Excel的XLL插件 它在我的电脑和其他许多电脑上运行良好。但在某些情况下,当我将XLL拖动到新的Excel窗口中时,会出现以下错误: 您试图打开的文件“my_addin.xll”的格式不同 格式超过文件扩展名指定的格式。验证文件是否正确 未损坏,并且在打开文件之前来自受信任的源。做 你想现在打开这个文件吗 如果单击“是”,Excel将以文本文件的形式打开XLL,如下所示: 好极了!¸LÍ!此程序不能在DOS模式下运行 就在第一排。这是不可能发生的。原因可能是什么 这是

我用C++和./p>构建Excel的XLL插件 它在我的电脑和其他许多电脑上运行良好。但在某些情况下,当我将XLL拖动到新的Excel窗口中时,会出现以下错误:

您试图打开的文件“my_addin.xll”的格式不同 格式超过文件扩展名指定的格式。验证文件是否正确 未损坏,并且在打开文件之前来自受信任的源。做 你想现在打开这个文件吗

如果单击“是”,Excel将以文本文件的形式打开XLL,如下所示:

好极了!¸LÍ!此程序不能在DOS模式下运行

就在第一排。这是不可能发生的。原因可能是什么

这是所有机器的系统配置:

  • Microsoft Windows 7 Professional 64位(操作系统)
  • Microsoft Excel 2010 32位

总之,错误代码
此程序无法在DOS模式下运行。
通常与以下问题之一有关:

  • XLL内置有
    /MD
    标志,但最终用户没有所需的CRT DLL

  • XLL使用错误的平台编译;e、 g.平台
    x64
    用于构建XLL,然后将其加载到32位Excel中(反之亦然)

  • 缺少外部DLL依赖项

  • 有一个外部DLL依赖项,它是使用
    /MD
    标志(运行时库的多线程特定和DLL特定版本)构建的。在这种情况下,如果最终用户拥有正确的CRT版本(用于构建外部DLL的版本),则没有问题。否则,强烈建议使用
    /MT
    标志(运行时库的多线程静态版本)重建外部DLL(如果可能)。或者更好的方法是将其静态链接到XLL(使用static.lib文件作为第三方组件构建的输出)


  • 我相信最后一个可能是您的情况。

    缺少外部dll或运行时dll?你是用MT标志建造的吗?你能检查一下dll依赖关系吗?你还需要一个x86 xll for excel 32位和一个x64 xll for excel 64位。我发现我是在MT下构建的,但错误地链接到了一个用于MD的库。但是为什么有些用户可以使用它,而有些用户不能?好吧,我想对于使用它的用户来说,他们必须用另一个软件安装这个库。这个不同,但两者密切相关: