“addin.XLL是一个不同的格式”问题,无法打开我自己创建的xll

时间:2013-02-07 20:51:00

标签: c++ excel add-in xll

我在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中打开。一切都像我预期的那样有效。

但是,如果我尝试在另一台PC上打开此文件,Excel会一直告诉我:

您尝试打开的文件'.xll'的格式与文件扩展名指定的格式不同。在打开文件之前,请验证文件是否已损坏且是否来自受信任的源。你想现在打开文件吗?

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

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

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

顺便说一句,我真的不知道如何选择回复作为答案。如果你知道怎么做,也请让我知道:)

......本周我将发布我的工具......现在我才意识到它只适用于我的电脑......请帮助...... T_T

4 个答案:

答案 0 :(得分:2)

主要原因是:

  1. 你试图用错误的架构打开一个xll(例如:32位xll,带有excel 64位)

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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