怎样让 Foxpro 编译、链接生成的 .EXE 文件带命令行参数,在一般的参考书中未见介绍。本人经过摸索,寻找出两种方法,供读者朋友借鉴。
(一)、利用 DOS 的环境变量向 Foxpro 生成的 EXE 文件传递参数。我们知道,Foxpro 的函数 Getenv() 用来获取在 DOS
下定义的某环境变量的值。利用这一点,我们在 DOS 下将 Foxpro 需带的命令行参数先赋给某 DOS 环境变量 (不要与 Dos 系统自用的 Path、Temp、Comspec、Prompt 等重名),
然后在 Foxpro 生成的 EXE 文件中通过前述函数获取参数的值即可。 后附程序一 Setpara.bat 首先设置环境变量 V1 和 V2,程序二 Getpar-a.prg 检测这两个参数的值。
读者可将 Getpara.prg 用 Foxpro 编译后验证此程序。用 Setpara.bat 程序启动,如:
C:\FOX>Setpara p1 P2
屏幕显示:
命令行参数1=p1
命令行参数2=P2
程序一:
Setpara.bat:
@echo off
set v1=%1
set v2=%2
getpara.exe
rem Rlease V1,V2
set v1=
set v2=
程序二:
Getpara.prg:
set talk off
cmdpara1=getenv("v1")
cmdpara2=getenv("v2")
@ 10,10 SAY "命令行参数1="+cmdpara1
@ 12,10 SAY "命令行参数2="+cmdpara2
@ 14,10 say "Press a key Go on."
ink=inkey(0)
return
(二)、 其实,Foxpro 的 .prg 命令文件本身就可获得父进程传递的参数,当上级调用者为 DOS 时,这个特征照样有效,只是在参数传递形式上稍有不同。如程序三 Getpara2.prg,经过编译链接后在 DOS 下运行:
C:\FOX>getpara2 Para1 para2
屏幕显示:
参数1=Para1
参数2=para2
程序三:
Getpara2.prg:
para v1,v2
set talk off
? "参数1=",v1
? "参数2=",v2
ink=inkey(0)
return
注意,以上二、三程序如果在 Foxpro 集成环境下运行,要用不同的形式,如程序三在 Foxpro 命令窗口中须以
Do getpara2 with "Para1"," Para2"
的形式运行。
有关 Foxpro 命令文件编译成 .EXE 文件的方法, 请参考<<电脑报>>的有关文章。以上程序在 COMPAQ presario 460 型 486sx/66 机子上,Foxpro 2.5 for DOS 环境下运行通过。
|
|