| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 186 人关注过本帖
标题:这是二十多年前的书,我也是醉了!—— Microsoft Office Automation with ...
只看楼主 加入收藏
cssnet
Rank: 5Rank: 5
等 级:职业侠客
威 望:5
帖 子:444
专家分:370
注 册:2013-10-4
结帖率:100%
收藏
 问题点数:0 回复次数:5 
这是二十多年前的书,我也是醉了!—— Microsoft Office Automation with Visual FoxPro
上次一位英雄截了一段视频,是关于“Word嵌入表单当作Editbox来用”的,感觉挺有意思!
自己也试了一下,总不得要领。
于是上网搜,就搜到了这一本老古董,出版日期印象中是2002年的!
直摇头。
唉,23年前的书,竟然还如获至宝似的。
我无限悲哀地想:
咱跟时代脱节真的太严重了!
原书是chm格式,我英语不大好,遂拆成htm,方便用edge打开,自动翻译成中文来看。
有兴趣又有闲的朋友,不妨一起看看这老掉牙的玩意儿。
对于这个话题:“Word嵌入表单当作Editbox来用”,有啥妙招,不妨也支两招,让大伙儿开开眼。
独乐乐不如众乐乐,是吧——哥们?姐们?


Microsoft Office Automation with Visual FoxPro.rar (1.85 MB)


搜索更多相关主题的帖子: with Visual FoxPro Microsoft Office 
3 天前 12:14
cssnet
Rank: 5Rank: 5
等 级:职业侠客
威 望:5
帖 子:444
专家分:370
注 册:2013-10-4
收藏
得分:0 
为什么突然一拍脑门,就要钻研起“Word嵌入表单当作Editbox来用”?
且让俺这冰雪聪明的老汉来细细表一表个中利害关系:

1、AI时代,MS word 必然要接入AI,迟早的事儿;
2、既然要接入AI,MS word 必然要支持并能完美处理AI的输出,也就是MarkDown格式文本;
3、既然在不远的将来,MS word 必然要完美支持MarkDown,那么,VFP只要赶紧搞定了Word,必然地,也就搞定MarkDown啦。

好吧,老汉的狼子野心彻底暴露!——没错,我的主菜是 MarkDown,而Word只不过是盛菜的碟子而已啦。


3 天前 15:47
schtg
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:Usa
等 级:贵宾
威 望:67
帖 子:2153
专家分:4682
注 册:2012-2-29
收藏
得分:0 
3 天前 15:53
hsfisher
Rank: 2
等 级:论坛游民
帖 子:82
专家分:41
注 册:2009-4-26
收藏
得分:0 
前天 11:28
cssnet
Rank: 5Rank: 5
等 级:职业侠客
威 望:5
帖 子:444
专家分:370
注 册:2013-10-4
收藏
得分:0 
我老人家让网友一句话给误导啦,冲动了,冲动了。

问:在32位的vfp表单中,嵌入64位word文档的方案,本身是否就是个伪命题,是一个不可能的任务?

deepseek:# 32位VFP表单中嵌入64位Word文档的可行性分析

您提出了一个关键问题:在32位VFP中直接嵌入64位Word文档是否本质上就不可能实现?答案是:**是的,这确实是一个不可能直接实现的任务**。以下是详细的技术分析:

## 核心限制:进程间COM架构壁垒

1. **二进制不兼容性**:
   - 32位进程无法加载64位COM组件(包括OLE对象)
   - 64位进程无法调用32位COM组件
   - 这是Windows操作系统的底层设计限制

2. **OLE嵌入机制限制**:
   - 嵌入的OLE对象必须与宿主程序(VFP)在相同位元架构下运行
   - Word文档的编辑界面实际上是Word应用程序的窗口句柄嵌入

## 技术验证实验

如果您尝试在32位VFP中嵌入64位Word,会出现以下现象:

```vfp
* 在32位VFP中尝试创建64位Word
TRY
    oWord = CREATEOBJECT("Word.Application") && 将失败
    ? "成功创建Word对象"
CATCH TO oEx
    ? "错误:", oEx.Message && 显示"OLE error 0x80040154 Class not registered"
ENDTRY
```

## 替代方案可行性评估

虽然直接嵌入不可行,但有以下间接解决方案:

### 方案1:进程外通信(推荐)

| 方法                | 实现要点                          | 优缺点                          |
|---------------------|-----------------------------------|---------------------------------|
| **DCOM配置**        | 在64位Word中暴露可调用的COM接口   | 复杂但稳定,适合企业环境        |
| **中间件服务**      | 开发一个64位中间服务程序          | 需额外开发,但架构最灵活        |
| **文件交换**        | 通过临时文件传递数据              | 简单但实时性差                  |

### 方案2:自动化控制(非嵌入)

```vfp
* 启动独立Word进程
DECLARE INTEGER ShellExecute IN shell32.dll ;
    INTEGER hwnd, STRING lpOperation, ;
    STRING lpFile, STRING lpParameters, ;
    STRING lpDirectory, INTEGER nShowCmd

ShellExecute(0, "OPEN", "WINWORD.EXE", "", "", 1)

* 然后通过DDE或文件监控实现交互
```

## 技术原理图解

```
[32位VFP进程] --(禁止直接COM调用)--> [64位Word进程]
       |                                   ^
       |------(通过DCOM/RPC/文件)--------|
```

## 微软官方立场

根据MSDN文档:
> "32-bit processes cannot load 64-bit DLLs, and 64-bit processes cannot load 32-bit DLLs. This restriction applies to COM servers and OLE documents as well."

## 实际工程建议

1. **短期解决方案**:
   - 统一安装32位Office套件
   - 这是最简单的兼容性方案

2. **中长期方案**:
   ```mermaid
   graph LR
   A[32位VFP] --> B[64位中间件服务]
   B --> C[64位Word]
   C --> B
   B --> A
   ```

3. **终极迁移路径**:
   - 将VFP业务逻辑迁移到.NET Core
   - 使用VSTO或Web技术替代嵌入方案

## 结论

在纯技术层面上,**32位VFP表单直接嵌入64位Word文档确实是一个"伪命题"**,因为Windows的进程架构限制使其无法实现。所有看似可行的方案实际上都是通过某种形式的进程间通信(IPC)实现的间接解决方案,而非真正的OLE嵌入。对于必须使用64位Office的环境,建议采用中间件架构或统一使用32位Office套件。
昨天 08:16
cssnet
Rank: 5Rank: 5
等 级:职业侠客
威 望:5
帖 子:444
专家分:370
注 册:2013-10-4
收藏
得分:0 
问:Linux自2020年起,已逐步移除32位支持;那么网上有无预测,Windows将何时移除32位支持?

deepseek / 豆包 / 腾讯元宝:
关于 Windows 是否会移除对32位(x86)系统的支持,目前微软尚未公布明确的终止时间表,但可以从官方政策、行业趋势和技术演进中推测可能的走向。以下是综合分析和预测:
(巴拉巴拉一大通,……略。)
总结
微软大概率会在2030年前后完全终止32位支持(包括WOW64),但具体时间取决于企业生态迁移进度。Windows 10的32位版本将是最后一个“纯32位”系统,而64位Windows对32位应用的兼容性可能再维持5-10年。建议关注微软官方生命周期公告(Microsoft Lifecycle Policy)以获取最新动态。

好吧,VFP大概率还剩下4年多一点点的命,然后,将随32位的清风而默默消逝。

昨天 17:39
快速回复:这是二十多年前的书,我也是醉了!—— Microsoft Office Automation ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018029 second(s), 11 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved