【发布时间】:2013-04-21 12:58:03
【问题描述】:
我不是熟练的 Windows 程序员,但多年来我创建并维护了一个用于 32 位 Windows XP / Excel 的 XLL 插件。我现在想创建一个 Windows 7/64 位版本,但遇到了问题 - 我什至无法让 Generic.xll 示例工作。
这是我所做的最简单的版本 - 抱歉,这很长而且很迂腐。
在我安装了 Visual Studio 2010 Professional 的 Windows XP/32 机器上:
下载并安装了 Microsoft Excel 2013 SDK。
开始菜单 - “打开 Visual Studio x64 Cross Tools 命令提示符 (2010)”
SET TYPE=RELEASE
SET PLATFORM=x64 // 我认为这是预设的
cd C:\2013 Office System Developer Resources\Excel2013XLLSDK\SAMPLES\FRAMEWRK
nmake // 没有错误
cd C:\2013 Office System Developer Resources\Excel2013XLLSDK\SAMPLES\GENERIC
nmake // 没有错误
将生成的 C:\2013 Office System Developer Resources\Excel2013XLLSDK\SAMPLES\GENERIC\x64\RELEASE\GENERIC.xll 复制到 Windows 7/64 计算机可访问的网络文件夹中
在 Windows 7/64 计算机上:
启动 Excel 2013
文件-选项-加载项-管理Excel加载项-浏览,进入包含Generic.xll的网络文件夹,点击。
允许 Excel 将 Generic.xll 复制到标准文件夹。它静默加载,没有消息(包括没有消息说它加载了 Generic.xll)
Generic.xll 中未出现任何功能。
关闭并重新打开 Excel - 重新打开时,我收到一个消息框,提示“'GENERIC.xll' 的文件格式和扩展名不匹配。文件可能已损坏或不安全...”(如果我说“是”,它像文本文件一样加载它,在电子表格的 XLL 中显示二进制代码。)
根据之前的 (Windows XP/32) XLL 经验,此消息几乎可以表示任何内容 - 包括缺少所需的 DLL。所以,
在 Windows 7/64 计算机上:
安装 Microsoft Visual C++ 2010 x64 Redistributable - 10.0.30319。没有影响。
安装 Microsoft Visual C++ 2012 Redistributable (x64) - 11.0.51106。没有影响。
运行“Dependency Walker for Win64(x64) Version 2.2.600,由 Steve P. Miller 开发”
文件 - 打开 - Generic.xll
显示找不到:
-- XLCALL32.DLL // 典型的来自我在工作 XLL 上的 Windows XP 经验
-- API-MS-WIN-CORE-COM-L1-1-0.DLL
-- API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
-- API-MS-WIN-CORE-WINRT-L1-1-0.DLL
-- API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
-- API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
-- API-MS-WIN-SHCORE-SCALING-L1-1-0.DLL
-- DCOMP.DLL
-- IESHIMS.DLL // 典型的来自我在工作 XLL 上的 Windows XP 经验
所以,现在我被难住了。我以为我遇到了 64 位问题,但我开始怀疑我是否遇到了 Windows 7 问题。
帮助?
谢谢,
提姆
【问题讨论】:
-
您是否尝试使用 Dependency Walker 查看加载 XLL 的错误是什么?
标签: visual-studio excel windows-7 64-bit xll