我把matlab的m文件通过VC++6.0转成dll,然后在vb中引用程序功能是:点击command1生成16个随机数,并写入t.txt,点击command2调用dll中的过程,换成傅里叶变换,并写入t.txt中,command3读取完成傅里叶变换的数据(已保存在t.txt中)
现在功能可以实现,就是点击command2后,程序会自动关闭,但是傅里叶变换已完成,且已写入t.txt,只是要重新打开程序,按command3.求教问题可能出在什么地方呢?vb代码:
'申明dll
Private Declare Sub mlfTest1 Lib "test.dll" ()
’按键一生成随机数,输出到text1,并且写入t.txt
Private Sub Command1_Click()
Randomize
Dim i As Integer
Dim a As Integer
Dim b As String
Text1.Text = ""
Open "c:\t.txt" For Output As #1
For i = 1 To 16
a = Int(10 * Rnd)
Print #1, LTrim(a)
b = b & Str(a) & Chr(13) & Chr(10)
Next i
Text1.Text = b
Close #1End Sub
'按键二调用dll中函数,完成傅里叶变换,并写入t.txt
Private Sub Command2_Click()
mlfTest1
End Sub
’读取t.txt中内容到文本框二
Private Sub Command3_Click()
Dim str1 As String
Dim str2 As String
Text2.Text = ""
Open "c:\t.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, str1
str2 = str2 & str1 & Chr(13) & Chr(10)
Loop
Text2.Text = str2
Close #1End Sub
现在功能可以实现,就是点击command2后,程序会自动关闭,但是傅里叶变换已完成,且已写入t.txt,只是要重新打开程序,按command3.求教问题可能出在什么地方呢?vb代码:
'申明dll
Private Declare Sub mlfTest1 Lib "test.dll" ()
’按键一生成随机数,输出到text1,并且写入t.txt
Private Sub Command1_Click()
Randomize
Dim i As Integer
Dim a As Integer
Dim b As String
Text1.Text = ""
Open "c:\t.txt" For Output As #1
For i = 1 To 16
a = Int(10 * Rnd)
Print #1, LTrim(a)
b = b & Str(a) & Chr(13) & Chr(10)
Next i
Text1.Text = b
Close #1End Sub
'按键二调用dll中函数,完成傅里叶变换,并写入t.txt
Private Sub Command2_Click()
mlfTest1
End Sub
’读取t.txt中内容到文本框二
Private Sub Command3_Click()
Dim str1 As String
Dim str2 As String
Text2.Text = ""
Open "c:\t.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, str1
str2 = str2 & str1 & Chr(13) & Chr(10)
Loop
Text2.Text = str2
Close #1End Sub
dll里面有内存泄漏或者VB无法处理的win32异常。