VB和C语言程序间交换数据的方法探讨

时间:2022-09-02 05:36:50

VB和C语言程序间交换数据的方法探讨

摘要:VB语言设计界面简单,但程序执行效率低,C语言设计界面复杂,但程序执行效率高。通过文件这一媒介将两者结合起来,给出具体的操作步骤,实现VB和C语言程序间的数据交换,既使程序得以高效执行,又有效简化了界面设计步骤。

关键词:VB语言;C语言;数据交换;方法;步骤

中图分类号:TP312文献标识码:A文章编号:1009-3044(2011)25-6082-02

Discussion of Data Exchange Method between VB and C Language Programs

SONG Jie-peng

(Kewen Institute, XuZhou Normal University, XuZhou 221116, China)

Abstract: Interface design of VB language is simple, but the execution efficiency of program is low. Interface design of C language is complex, but the execution efficiency is high. Through file media, two languages can be combined. The operation steps are provided for achieving data exchange between VB and C language programs, which not only make programs implement efficiently, but also simplify the procedure of interface design.

Key words: VB language; C language; data exchange; method; steps

VB程序设计语言是微软公司开发的一种面向对象的可视化编程语言,它使用方便,对于初学者很容易上手[1]。通过控件工具箱,可以很容易设计出程序的界面。但它有一个缺点,就是程序的运行效率不高,如果程序涉及到复杂的数学运算,则执行时间会相当长。与此相反,C语言在执行效率上比较高,但是在开发程序的界面上,则需要花费很大的功夫[2]。如果能将这两种编程语言的优点结合起来,用VB语言设计界面,调用C语言写的程序来执行,最后将得到的结果再返回到VB做的界面中显示出来,那么无论从输入输出界面的设计到程序的执行,都会得到一个满意的结果。可问题是在VB中输入的数据,要传送给用C语言写的程序来用,同样,用C语言编写的程序的运行结果,也得返回到用VB语言设计的程序界面上,这是一个棘手的问题。经过查阅两种程序设计语言的资料,并经过上机调试验证,发现文件可以在这个过程中起一个很好的桥梁作用。

1 在VB和C语言程序间交换数据的方法步骤

VB程序可以读写硬盘上的文件,而C语言程序也可以读写硬盘上的文件,VB程序中又可以调用后缀为.exe的可执行文件,C语言程序经编译后可以得到后缀为.exe的可执行文件[3]。根据这些特点,可以在VB做的界面中输入原始的数据,将其写到硬盘的文件中,调用C语言写的程序打开这个文件,将数据读入到C语言程序中,经过需要的计算后,再将结果写到硬盘的另一个文件中,再用VB程序语句打开这个存放结果的文件,取出其中的数据,显示到VB做的界面中。下面介绍其方法步骤,为便于描述,设定要在VB界面中输入两个数据,传送给C语言程序后由C语言程序计算它们的乘积,再将运算结果利用文件回传给VB程序,最后在VB做的界面中显示出来。

1.1 写C语言程序

启动VC++6.0,新建一个C++源程序,代码如下:

#include

main()

{

double data1,data2,result;

FILE *fp;

if ((fp=fopen("data.txt","rb"))==NULL)

{

return 0;

}

fread(&data1,sizeof(data1),1,fp);//将data.txt中的第一个数据读到变量data1中

fread(&data2,sizeof(data2),1,fp);//将data.txt中的第二个数据读到变量data2中

result=data1*data2;

fclose(fp);

fp=fopen("result.txt","wb");

fwrite(&result,sizeof(result),1,fp);//将得到的乘积存放到文件result.txt中

fclose(fp);

}

将其保存到硬盘上,例如存放到D盘的P1文件夹下,名称为jisuan,后缀VC会自动加为.cpp[4]。单击组建菜单下的编译菜单项,按其提示一步步操作,在看到没有错误的提示后,再单击组建菜单下的组建菜单项,在执行结束后,通过Windows资源管理器发现在P1子目录下生成了一个Debug子目录,在这个子目录中已经生成了一个可执行的文件jisuan.exe。将这个文件复制粘贴到P1子目录下。

1.2 编写VB程序

启动VB6.0,制作如图1所示界面。

Private Sub Command1_Click() '对应计算命令按钮

Dim m As Double, n As Double

Dim result As Double

Dim i As Integer, j As Integer

Text3.Text = ""

m = Val(Text1.Text)

n = Val(Text2.Text)

Open App.Path & "\data.txt" For Binary As #2

Put #2, , m'将数据m以二进制方式写入到文件data.txt中

Put #2, , n'将数据n以二进制方式写入到文件data.txt中

Close #2

Shell App.Path & "\jisuan.exe", vbHide'执行C语言写的程序

For i = 1 To 5000'延时程序段,等待jisuan.exe执行结束

For j = 1 To 5000

Next j

Next i

Open App.Path & "\result.txt" For Binary As #3

Get #3, , result '将文件result.txt中存放的乘积读到变量result中

Close #3

Text3.Text = result

End Sub

Private Sub Command2_Click()'对应退出命令按钮

Unload Me

End Sub

将VB编写的程序存盘,存放在刚才的P1子目录下,注意,必须与jisuan.exe存放在同一个目录下,否则程序运行时会出错。

1.3 运行程序

在将VB程序保存到P1子目录后,运行VB程序(一定要先存盘,再运行),在出来的运行界面中,第一个文本框中输入2,第二个文本框中输入3,单击 [计算] 命令按钮,会发现在第三个文本框中显示6。

至此,在VB语言程序与C语言程序间利用文件交换数据的过程结束。

2 结束语

通过文件这个桥梁可以把VB语言程序与C语言程序很好的结合起来,既利用了VB设计界面简单这个特点,又利用了C语言程序执行高效的特点,而且避免了它们各自的缺点。当然,在涉及到文件操作时,需要对文件的打开、读写方式要有充分的了解,一旦用错了语句,可能就得不到想要的结果。

参考文献:

[1] 刘瑞新,汪远征.VB程序设计教程[M].北京:机械工业出版社,2006.

[2] 谭浩强.C程序设计教程[M].北京:清华大学出版社,2005.

[3] 顾莉.实现VB调用C程序动态链接库的方法[J].福建电脑,2010(10):175-176.

[4] 张学强,郑公营.VB调用C和Fortran自定义动态库函数联合编程[J].工程地球物理学报,2010,7(1):55-59.

上一篇:汽车驾驶员个人身份认证的硬件设计 下一篇:浅谈我局CPCI调度系统及故障处理