标题:VFP能不能镶入C语言编译的EXE程序啊?
只看楼主
shouting
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-5-27
 问题点数:0 回复次数:2 
VFP能不能镶入C语言编译的EXE程序啊?

本人刚学VFP 不知道可不可以这样!

搜索更多相关主题的帖子: VFP C语言 编译 EXE 
2006-06-13 10:39
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
得分:0 
VFP可以执行外部程序

run | ! 命令 : 执行外部操作命令或程序。

语法:
RUN [/N [K]] MS-DOSCommand | ProgramName
— 或 者 —
! [/N [K]] MS-DOSCommand | ProgramName

参数
MS-DOSCommand

指定要执行的 MS-DOS 命令。有关 MS-DOS
命令的详细内容,请参阅 MS-DOS 文档。

ProgramName

指定要运行的程序或应用程序。在 FoxPro for MS-DOS 版本中,可以指定基于 MS-DOS 的程序或应用程序。在 Visual FoxPro 和 FoxPro for Windows 版本中,则可以指定基于 Windows 或基于 MS-DOS 的程序或应用程序。

/N [K]

在 FoxPro for MS-DOS 版本中,指定 FoxPro for MS-DOS 分配给运行外部程序的内存数量。N
是以 千字节(K)为单位的字节数,由它指定 RUN 命令可以得到的内存数量。
在 Visual FoxPro 和 FoxPro for Windows 版本中,
/N 指定 NOWAIT。包含 N(不是用一个数值表达式代替 N,也不包含 K 选项)可以执行另一个基于 Windows 的应用程序。

说明

只用于 Visual FoxPro 、 FoxPro for Windows 和 FoxPro for MS-DOS。可以在命令窗口或在程序中执行 RUN 命令。
在 FoxPro for Macintosh 版本中,RUN 不起作用。

重要内容
要运行 RUN,操作系统文件 COMMAND.COM
必须在当前目录中,或位于 MS-DOS COMSPEC
参数指定的地方。有关 COMSPEC 的详细内容,请参阅 MS-DOS 文档。

注意
请不要在 Visual FoxPro 内使用 RUN 来运行诸如 CHKDSK 这样的磁盘重组程序。这些程序修改磁盘上内容的方式可能会阻碍 Visual FoxPro
正常运行。

RUN 和 FoxPro for MS-DOS

FoxPro for MS-DOS 提供了一个内存管理实用工具 FoxSwap,可以用来为 RUN 分配更多的可用内存。
RUN 命令选项 /N 和 /NK 指定了 FoxPro for MS-DOS 分配给运行外部程序的内存数量。N
是以 KB 为单位指定 RUN 命令可使用的内存数量的数值,因此在指定可用内存数量时,请不要直接使用字母“N”。
要最大程度地使用 FoxSwap,可指定 N = 0。
此时 FoxPro for MS-DOS 将为 RUN 命令获得尽可能多的内存。
如果指定 N 的值大于 0, FoxPro for MS-DOS
则按如下规则执行:

? 将缓冲区中的内容保存至磁盘上。
? 如果可以得到 N KB 内存的话,则调用 RUN
。如果得不到 N KB 内存, FoxPro for MS-DOS
则调用 FoxSwap。

例如,可以执行下面的命令分配 120 KB 内存来运行外部文本编辑器 MYEDITOR:

RUN /120 MYEDITOR
! /120K MYEDITOR.


虽然使用 FoxSwap 可以运行较大的外部程序,但是运行 FoxSwap 要花费额外的时间。

提示
请预先确定运行外部程序所需的内存数量,最好不要指定超出所需数量的内存。因为如果内存够用,便可以不使用 FoxSwap,这时,RUN
命令可以运行得快一些。

RUN 和 Visual FoxPro、FoxPro for Windows

当使用 RUN 来运行 Visual FoxPro 和 FoxPro for Windows 以外的程序时,它查找程序的方式与 FoxPro for MS-DOS 稍有不同。
如果在 RUN 中指定的程序没有扩展名, Visual FoxPro 和 FoxPro for Windows 首先沿着 MS-DOS
路径查找指定名称的程序信息文件( PIF )。PIF
允许在 Windows 下运行非 Windows 程序,并且可以指定程序的参数:程序是在窗口中运行还是全屏幕运行、分配给程序的内存数量等等。
如果找到了相应的 PIF,则使用 PIF 中指定的参数执行 PIF 中指定的程序。如果找不到 PIF,便在 MS-DOS 路径中按指定的名称搜索可执行程序。

当找不到 PIF 时,便使用安装在 Visual FoxPro
或 FoxPro for Windows 目录中的 PIF 文件 FOXRUN.PIF。FOXRUN.PIF 对程序在 Windows
中的运行做了一些配置。也可以修改 FOXRUN.PIF 来按另一种配置运行程序。

FOXRUN.PIF

FOXRUN.PIF 允许在 Visual FoxPro 和 FoxPro for Windows 中执行基于 MS-DOS 和 Windows 的程序和命令。FOXRUN.PIF 与 Visual FoxPro 中的 VFP.EXE 或与 FoxPro for Windows 中的 FOXPROW.EXE 必须在同一目录下。
在 FoxPro for MS-DOS 中,/N 和 /NK 指定了为运行外部程序而保留的内存数量。在 Visual FoxPro 和 FoxPro for Windows 中,/N 则表示 NOWAIT。在 Visual FoxPro 和 FoxPro for Windows 中, 包含 N(不用数值表达式代替 N,也不要包括 K 选项)可以执行其他基于 Windows
的应用程序。例如,下列语句打开“字符映射表”:

! /N CHARMAP.EXE


下面的示例是打开 Windows 控制面板中的 Windows 颜色选择程序:

! /N CONTROL COLOR


使用 RUN /N 或 ! /N 命令执行的 Windows 应用程序同通过程序管理器或文件管理器打开的应用程序运行的情况完全一样。可以使用 Windows
标准操作,在应用程序和 Visual FoxPro 或 FoxPro for Windows 之间来回切换。
可以在 /N 之后紧跟一个可选的数值,指定 Windows 应用程序的打开方式。注意不要在 /N
和数值之间加入空格。下表列出了有效的数值,同时说明了基于 Windows 的应用程序在每个数值下打开时对应的状态。

值 应用程序属性
1 活动且大小正常
2 活动且最小化
3 活动且最大化
4 不活动且大小正常
7 不活动且最小化
在 Visual FoxPro 和 FoxPro for Windows 中运行 MS-DOS 程序

默认情况下,FOXRUN.PIF 在窗口中运行指定的外部 MS-DOS 程序。当运行 MS-DOS 程序或命令时,窗口的标题是“FoxPro Run Command
”。在 FoxPro for Windows 中,当外部程序或命令运行结束后,窗口标题变为 “Inactive FoxPro Run Command”。 FoxPro for Windows
的菜单系统在关闭该窗口以前则一直无效。在 Visual FoxPro 中,当外部程序或命令结束执行时,即关闭“FoxPro Run Command”窗口。
Windows PIF 编辑器可以用来定制 FOXRUN.PIF
。通过编辑 PIF 编辑器中的“退出时关闭窗口”复选框可以指定“Inactive FoxPro Run Command”窗口是继续保持打开( FoxPro for Windows 的默认情况),还是关闭( Visual FoxPro 的默认情况)。还可通过选择 PIF 编辑器中的“全屏幕”复选框,将外部程序放在全屏状态下运行,以及为程序分配内存等。

内存考虑

默认情况下,FOXRUN.PIF 给外部命令或程序的运行分配最小的内存 256K。如果没有 256K
自由常规内存, Visual FoxPro 和 FoxPro for Windows 将会显示错误信息。要修正它,可试用下列一种或两种方法:关闭应用程序和文件,释放更多的内存。 编辑 FOXRUN.PIF,减少“KB 需要值”文本框中所需的内存数量。

如果外部命令需要超过 256K 内存,MS-DOS
便在“FoxPro Run Command”窗口中显示错误信息。要修正此错误,可编辑 FOXRUN.PIF,增加“KB 需要值”文本框中所需的内存数。


感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-06-13 11:23
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
不能镶入.EXE程序,只能通过外部程序命令RUN运行这些程序。
如果要在VFP程序中调用外部程序,必须要符合其要求,即只能调用COM程序,并且在编译COM程序时,程序命令应从第一个字节开始,前面不能留参数缓冲区(通常COM程序最前面256字节是参数缓冲区,程序代码是从第257个字节开始)。

活到老,学到老! http://www. E-mail:hu-jj@
2006-06-13 17:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-71877-1-1.html




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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018206 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved