为什么这段代码编译后不能运行?
我的目的是执行用户在文本框中输入的VB代码。并将结果写入数据库中。
以下代码在VB环境中可正常运行,编译后运行出错。
出错信息是:应用程序出现错误,正在生成日志。
日志内容(原文):
“应用程序 产生了一个应用程序错误 此错误发生在 08/03/2005 @ 12:00:24.648 所产生的意外情况为 c0000005,在地址 0FA916F9 (EbMode)处”
我用的是 Win2k adv s +sp4+vb6+sp6
1、请问该如何改进?
2、有没有其他解决方法?
Private Declare Function EbExecuteLine Lib "vba6.dll" ( _
ByVal pStringToExec As Long, _
ByVal Unknownn1 As Long, _
ByVal Unknownn2 As Long, _
ByVal fCheckOnly As Long) As Long
Function RunCode(ByVal cmd As String) As Long
Dim TCmd() As String
Dim Ti As Long
Dim Tl As Long
TCmd = Split(cmd, Chr(13) + Chr(10))
For Ti = 0 To UBound(TCmd())
Tl = EbExecuteLine(StrPtr(ByVal TCmd(Ti)), 0, 0, 0)
Text1(1).Text = Text1(1).Text & CStr(Tl) + ":" + TCmd(Ti) & Chr(13) & Chr(10)
Next
End Function
Private Sub Command1_Click()
RunCode Text1(0).Text
End Sub
Private Sub Form_Load()
Dim Tstr As String
Tstr = Tstr & "'请在此输入VB代码 " & Chr(13) & Chr(10)
Tstr = Tstr & "dim a as long,b as long,c as long" & Chr(13) & Chr(10)
Tstr = Tstr & "a=" & 3 & Chr(13) & Chr(10)
Tstr = Tstr & "b=" & 5 & Chr(13) & Chr(10)
Tstr = Tstr & "c=" & 2 & Chr(13) & Chr(10)
Tstr = Tstr & "clipboard.settext (a+b)/c" & Chr(13) & Chr(10)
Tstr = Tstr & "msgbox Clipboard.GetText"
Text1(0).Text = Tstr
Text1(1).Text = ""
End Sub