如何 在VB 程序中嵌套Turbo c编译器 急!!!!!
我要用VB做一个小的答题系统,希望在里面接上个c的编译器,最好是在vb界面下,出一个c的界面。 请高手指教!!谢谢!!!
问题点数:100、回复次数:12Top
1 楼KAIBate(凯)回复于 2002-06-17 18:08:19 得分 10
是在VB中调用C的程序吧?用shell函数。。Top
2 楼LA003(五音不全爱唱歌的洋)回复于 2002-06-17 18:15:51 得分 0
shell 函数?怎么用啊?我想在VB中的一个窗体出现一个c的编译界面,在其中可以完成对c语言的调试。
谢谢!!!Top
3 楼Laney(6吨大笨猫)回复于 2002-06-17 18:24:24 得分 10
shell "路径+文件名“Top
4 楼LA003(五音不全爱唱歌的洋)回复于 2002-06-17 18:32:06 得分 0
听我同学说,好象要用OLE ,还要用捕获,究竟什么是句柄,....?Top
5 楼LA003(五音不全爱唱歌的洋)回复于 2002-06-17 18:34:11 得分 0
听我同学说,好象要用OLE ,还要用捕获,句柄,容器,究竟是怎么回事....?
这些需要吗?
谢谢!!!!Top
6 楼cool222(坚持到底)回复于 2002-06-17 18:45:17 得分 10
重定向的命令行,以文件流模拟输入,将输出写到文件。VB通过把标准输入重定向为输入文件来控制程序运行,通过分析代替标准输出的输出文件来确定DOS程序运行的结果。这最简单,不过高手们可能有更好的方法,我只是菜鸟,不知道更多的啦。Top
7 楼LA003(五音不全爱唱歌的洋)回复于 2002-06-17 19:05:32 得分 0
谢谢!!!!我好象越看越糊涂Top
8 楼LA003(五音不全爱唱歌的洋)回复于 2002-06-17 19:07:32 得分 0
谢谢!!我好象越看越糊涂。。Top
9 楼DFMT(东方木头)回复于 2002-06-17 19:30:02 得分 20
你同学所说的应该是判断c窗口是否运行完毕,以便vb继续下面的代码运行吧!
可以通过调用api函数来捕获窗体句柄的,以此来判断c窗体程序是否结束,这样的例子很多,向netease里有,电脑报也有.....Top
10 楼LA003(五音不全爱唱歌的洋)回复于 2002-06-17 19:38:44 得分 0
哦,对对!!!有更具体一点的例子吗?
是不是知道了句柄就可以调用程序和结束程序?Top
11 楼sunxl(小呆)回复于 2002-06-17 19:46:41 得分 40
如果我理解错了 你告诉我
你不就是想做c 编译器吗?
编译器 你只要用 textbox
就行 然后你把存成文件 xxx.c
调用 link 一编译不就行了吗?
调用 外部 exe
Shell 函数示例
本示例使用 Shell 函数来完成一个用户指定的应用程序。
' 将第二个参数值设成 1,可让该程序以正常大小的窗口完成,并且拥有焦点。
Dim RetVal
RetVal = Shell("CALC.EXE", 1) ' 完成Calculator。
Shell 函数
执行一个可执行文件,返回一个 Variant (Double),如果成功的话,代表这个程序的任务 ID,若不成功,则会返回 0。
语法
Shell(pathname[,windowstyle])
Shell 函数的语法含有下面这些命名参数:
部分 描述
pathname 必要参数。Variant (String),要执行的程序名,以及任何必需的参数或命令行变量,可能还包括目录或文件夹,以及驱动器。
Windowstyle 可选参数。Variant (Integer),表示在程序运行时窗口的样式。如果 windowstyle 省略,则程序是以具有焦点的最小化窗口来执行的。
windowstyle 命名参数有以下这些值:
常量 值 描述
vbHide 0 窗口被隐藏,且焦点会移到隐式窗口。
VbNormalFocus 1 窗口具有焦点,且会还原到它原来的大小和位置。
VbMinimizedFocus 2 窗口会以一个具有焦点的图标来显示。
VbMaximizedFocus 3 窗口是一个具有焦点的最大化窗口。
VbNormalNoFocus 4 窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。
VbMinimizedNoFocus 6 窗口会以一个图标来显示。而当前活动的的窗口仍然保持活动。
说明
如果 Shell 函数成功地执行了所要执行的文件,则它会返回程序的任务 ID。任务 ID 是一个唯一的数值,用来指明正在运行的程序。如果 Shell 函数不能打开命名的程序,则会产生错误。
注意 缺省情况下,Shell 函数是以异步方式来执行其它程序的。也就是说,用 Shell 启动的程序可能还没有完成执行过程,就已经执行到 Shell 函数之后的语句。
Top
12 楼sunxl(小呆)回复于 2002-06-17 19:48:14 得分 0
如果我理解错了 你告诉我
你不就是想做c 编译器吗?
编译器 你只要用 textbox
就行 然后你把存成文件 xxx.c
调用 link 一编译不就行了吗?
调用 外部 exe
Shell 函数示例
本示例使用 Shell 函数来完成一个用户指定的应用程序。
' 将第二个参数值设成 1,可让该程序以正常大小的窗口完成,并且拥有焦点。
Dim RetVal
RetVal = Shell("CALC.EXE", 1) ' 完成Calculator。
Shell 函数
执行一个可执行文件,返回一个 Variant (Double),如果成功的话,代表这个程序的任务 ID,若不成功,则会返回 0。
语法
Shell(pathname[,windowstyle])
Shell 函数的语法含有下面这些命名参数:
部分 描述
pathname 必要参数。Variant (String),要执行的程序名,以及任何必需的参数或命令行变量,可能还包括目录或文件夹,以及驱动器。
Windowstyle 可选参数。Variant (Integer),表示在程序运行时窗口的样式。如果 windowstyle 省略,则程序是以具有焦点的最小化窗口来执行的。
windowstyle 命名参数有以下这些值:
常量 值 描述
vbHide 0 窗口被隐藏,且焦点会移到隐式窗口。
VbNormalFocus 1 窗口具有焦点,且会还原到它原来的大小和位置。
VbMinimizedFocus 2 窗口会以一个具有焦点的图标来显示。
VbMaximizedFocus 3 窗口是一个具有焦点的最大化窗口。
VbNormalNoFocus 4 窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。
VbMinimizedNoFocus 6 窗口会以一个图标来显示。而当前活动的的窗口仍然保持活动。
说明
如果 Shell 函数成功地执行了所要执行的文件,则它会返回程序的任务 ID。任务 ID 是一个唯一的数值,用来指明正在运行的程序。如果 Shell 函数不能打开命名的程序,则会产生错误。
注意 缺省情况下,Shell 函数是以异步方式来执行其它程序的。也就是说,用 Shell 启动的程序可能还没有完成执行过程,就已经执行到 Shell 函数之后的语句。
Top
13 楼LA003(五音不全爱唱歌的洋)回复于 2002-06-17 20:02:46 得分 0
谢谢sunxl这么细心的帮助。 我想还是在程序中直接调用c比较好, 现在我大致知道了用SHELL 命令来调用c 编译,有一点不太清楚,在我的应用程序中,在对c 编译完成后,是否还需要别的代码来继续我的vb程序?是否还需要用api 函数?Top
14 楼kittyGirl(蜜塘)回复于 2002-06-17 20:12:48 得分 10
vb和 Turbo c 的想法不一样了
windows消息循环 不用在写代码继续
不接到退出消息 exe就不退出Top




