3

我在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

4 回答 4

2

主要原因是:

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

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

于 2015-10-15T00:20:45.713 回答
1

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

于 2013-02-08T00:36:41.210 回答
1

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

于 2014-04-25T08:24:15.643 回答
0

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

于 2016-07-01T22:52:03.727 回答