需要调用turbo c2。0的内核,不会。请指教,谢谢

解决方案 »

  1.   

    看看TC 编译程序的命令行参数书写方法,然后SHELLEXEC调用TC命令行程序编译
      

  2.   

    帮你UP吧,早就想弄个那玩意来玩了,老没时间郁闷啊,祝你成功啊
    还有如果你只是想要使用界面化的TC2.0,你可以使用 WIN-TC,在很多地方都有下的
      

  3.   

    如何SHELLEXEC调用TC命令行程序
      

  4.   

    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 函数之后的语句。
      

  5.   

    当然,直接用SHELL函数并不太好,SHELL函数是异步的,下面有份资料告诉你怎么改进SHELL函数至于要得到错误信息更容易了,使用DOS的重定向符“>>” 将编译过程中显示的信息重定向到一个文本格式的临时文件中,然后在VB程序中读取这个临时文件就OK。如何改进Shell函数
    作者: ZDNet China 
    2003-11-28 04:3 PM 
     当你使用Shell函数的时候,在VB程序里运行另一个可执行程序是很容易的。在本篇文章里,我将向你演示如何通过一种简单的方式来改进Shell的功能。 Shell接受两个自变量。第一个是将要运行的EXE文件的名称,包括其路径。第二个自变量用来指定程序的窗口样式。这个自变量是可选的;如果省略掉的话,程序就会以最小化的形式运行。这里所展现的技术在工作的时候不会理会程序的窗口样式,甚至程序没有窗口都可以。(关于窗口样式自变量的更多信息,请参考VB的帮助。) 
     
    Shell会异步地运行目标程序,这就意味着执行可以在第二个程序执行完之前就返回VB程序。在很多情况下,这没有问题;但是在有的情况下,这可能就是问题了。一个例子是,当你的VB程序在某种程度上要依靠外壳程序完成其操作的结果。在这种情况下,你就需要某种方式来暂停VB程序,直到另一个程序结束。第一步是取得外壳程序的句柄。Shell函数会返回其程序的ID,或者PID。一旦有了这个,你就可以使用OpenProcess API函数来取得句柄:Public Declare Function OpenProcess Lib "kernel32" _
      (ByValdwDesiredAccess As Long, _
      ByValbInheritHandle As Long, _
      ByValdwProcessId As Long) As Long 将&H100000(通常由常量SYNCHRONIZE来表示)这个值传递给第一个自变量,将0(作为一个长型)传递给第二个自变量。第三个自变量是Shell函数返回的PID。函数所返回的值是代表外壳程序的Windows进程的句柄。有了这个句柄,你可以使用WaitForSingleObject API函数来暂停VB程序,直到外壳程序被终止。声明是:Private Declare Function WaitForSingleObject Lib _
      "kernel32" (ByValhHandle As Long, _
      ByValdwMilliseconds As Long) As Long 第一个自变量是程序所等待的句柄,它从OpenProcess函数获得。第二个自变量是等待时间。如果你传递了一个毫秒值,那么函数就会在外壳程序结束的时候,或者在指定的时间间隔用完的时候返回,这取决于哪一种情况先发生。如果你想要函数一直等到外壳程序结束,那么就要传递&HFFFF(常常由常数INFINITE表示)这个值。下面的示例代码显示了如何使用这些API来给程序设定外壳,并等待其完成。Const SYNCHRONIZE = &H100000
    Const INFINITE = &HFFFFPrivate Sub ShellProgramAndWait(ProgramName As String)Dim hHandle As Long, pid As Long
    txtStatus.Text = "Processing"
    txtStatus.Refresh
    pid = Shell(ProgramName, vbNormalFocus)
    If pid <> 0 Then
        hHandle = OpenProcess(SYNCHRONIZE, 0&, pid)
        WaitForSingleObjecthHandle, INFINITE
        txtStatus.Text = "Finished"
    Else
        txtStatus.Text = "Error shelling " & ProgramName
    End IfEnd Sub WaitForSingleObject函数会有效地冻结你的VB程序,这是你需要注意的事情,这样用户就不会认为出了问题。例如在这段代码里,一个Text Box(文本框)控件向用户显示了一条消息。要注意,Refresh(刷新)方法的使用确保了该消息在程序进入等待状态之前被显示出来。然后,当外壳程序终止的时候,一个“已完成(Finished)”的消息就显示出来了。
     
      

  6.   

    问一个简单的问题,像word中工具栏的撤销和返回功能是如何实现的