我不是熟练的 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 PLATFORM=x64 // 我认为这是预设的
cd C:\2013 Office System 开发者资源\Excel2013XLLSDK\SAMPLES\FRAMEWRK
nmake //没有错误
cd C:\2013 Office System 开发人员资源\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。没有影响。
运行“由 Steve P. Miller 开发的 Win64(x64) 版本 2.2.600 的 Dependency Walker”
文件 - 打开 - 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 问题。
帮助?
谢谢,
蒂姆