“addin.XLL is in a different format”问题,无法打开我自己创建的xll

问题描述 投票:0回答:5

我用VC++ 2010写了一个非常简单的xll文件,我使用的Excel是Excel 2007。该库只包含一个函数:

extern "C" LPXLOPER12 WINAPI tsMkErr() {
    static XLOPER12 x;
    x.xltype = xltypeErr;
    x.val.err = xlerrNull;
    return &x;
}

以及必要的xlAutoOpen功能。我编译了dll文件,将名称更改为xll,然后双击在Excel中打开。一切都按照我的预期进行。

但是,如果我尝试在另一台电脑上打开此文件,Excel 只是不断告诉我:

您尝试打开的文件“.xll”的格式与文件扩展名指定的格式不同。 打开文件之前,请验证文件是否未损坏且来源可靠。 您想现在打开文件吗?

当我单击“是”时,会弹出垃圾。

我还尝试通过加载项管理器加载它。在这种情况下,我可以打开文件,但找不到我的函数 tsMkErr()。

我将不胜感激所有建议......

btw,我真的不知道如何选择回复作为答案。如果你知道怎么做,也请告诉我:)

...我将在本周发布我的工具...现在我刚刚意识到它只能在我的电脑上使用...请帮助...T_T

c++ excel add-in xll
5个回答
2
投票

主要原因是:

  1. 您尝试打开具有错误架构的 xll(例如:32 位 xll 和 excel 64 位)

  2. 缺少一些外部 dll。(请参阅 Dependency Walker 工具) 请注意,如果您在调试模式下构建并尝试通过 Visual Studio 打开它,在这种情况下,您的环境路径变量可能不可用,并且 xll 缺少一些 dll。


1
投票

帮自己一个忙,使用 http://xll.codeplex.com


1
投票

可能的原因可能是缺少依赖项(crt dll 等)。您可以使用 Dependency Walker 工具进行检查。


0
投票

您似乎正在以“调试”模式构建解决方案。如果您在调试模式下构建解决方案,Visual Studio 会将 xll 与很少安装在另一台计算机上的调试库链接起来。因此,请确保将构建配置设置为 release 并且它应该可以在其他计算机上运行(如果它们安装了正常的 ms c++ 可再发行库)。


0
投票
https://github.com/xlladdins/xll

© www.soinside.com 2019 - 2024. All rights reserved.