我用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()。
我将不胜感激所有建议...
顺便说一句,我真的不知道如何选择回复作为答案。如果你知道怎么做,也请告诉我:)
...我将在本周发布我的工具...现在我才意识到它只能在我的 PC 上运行...请帮忙...T_T
最佳答案
主要原因是:
您尝试打开架构错误的 xll(例如:32 位 xll 和 excel 64 位)
缺少一些外部 dll。(请参阅 Dependency Walker 工具) 请注意,如果您在 Debug模式下构建并尝试通过 visual studio 打开它,在这种情况下,您的环境路径变量可能不可用并且 xll 缺少一些 dll。
关于c++ - "addin.XLL is in a different format"问题,无法打开自己创建的xll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14760755/