vb程序转换成vc程序
一个vb版的程序,麻烦高手转换成vc的版本,多谢!!毕设需要,本人只会用vb,对vc七窍已通六窍~ --------------------编程问答-------------------- 回帖是一种美德!传说每天回帖即可获得 10 分可用分! --------------------编程问答-------------------- 下载不了直接把代码贴上来吧 --------------------编程问答--------------------
“七窍已通六窍”还不能自己写呀,呵呵
我对VC是“一窍不通”,只能说“略懂皮毛”,但是我也
写了很多VC程序,你那"六窍"太假了吧,呵呵 --------------------编程问答-------------------- 附件无法下载。
--------------------编程问答--------------------
“七窍已通六窍” ──→ “一窍不通”!!!
--------------------编程问答-------------------- 计算机专业的不懂VC,而会VB,我不相信,著名懒人也!!!
有句话叫作:不懂C语言就不懂计算机!
--------------------编程问答-------------------- Private Sub Form_Load()
Form1.Show
mscommOK = False
MSComm1.InputMode = comInputModeBinary
MSComm1.InBufferSize = 1024
MSComm1.InputLen = 0
MSComm1.InputMode = 1
MSComm1.RThreshold = 1
MSComm1.RTSEnable = True
MSComm1.Settings = "4800,N,8,1"
MSComm1.SThreshold = 1
MSComm1.CommPort = Combo1.Text
On Error GoTo Err
MSComm1.PortOpen = True
mscommOK = True
Exit Sub
Err:
MsgBox "串口已占用"
End Sub
Private Sub MSComm1_OnComm()
Dim inbuftem As Variant '接受数据
Dim i As Byte
Dim tenp1, temp2 As Byte
Dim j As Long
Dim inlen_in As Byte
Dim inlen_left As Byte
'Dim cmdbuf(14) As Byte
Select Case MSComm1.CommEvent
'i = MSComm1.InputMode
Case comEvSend
sending = 0
Case comEvReceive
Sleep (50) '等待完全接收
inlen = MSComm1.InBufferCount
If (inlen > 35) Then
MSComm1.InBufferCount = 0
Exit Sub
End If
inbuftem = MSComm1.Input
For j = 0 To inlen - 1
inbuf(j) = inbuftem(j)
Next j
If (inbuf(3) = &H31 And inbuf(4) = &H37) Then 'function code 17
temp1 = (ascii2ox(inbuf(7)) * 16 + ascii2ox(inbuf(8))) Mod 256
If (fnAa(temp1, 0)) Then '显示门磁状态
Image1.Visible = False
Image3.Visible = True
Else
Image1.Visible = True
Image3.Visible = False
End If
If (fnAa(temp1, 1)) Then '显示出门按钮状态
Image2.Visible = False
Image4.Visible = True
Else
Image2.Visible = True
Image4.Visible = False
End If
cardbits = (ascii2ox(inbuf(9)) * 16 + ascii2ox(inbuf(10))) Mod 256
If cardbits > 0 Then
TextCardBits.Text = cardbits '显示卡号位数
If (cardbits < 8) Then
Hexstring = Hex(inbuf(5) / (2 ^ (8 - cardbits))) '右移8-inbuf(4)位
Binstring = ToBin(Hexstring)
If (Len(Binstring) < (cardbits - 2)) Then
For i = 1 To cardbits - Len(Binstring)
Binstring = "0" + Binstring '补上因进制转换而被去掉的前头的0
Next i
End If
Decstring = ToDec(Binstring)
TextOdd(0).Text = "*"
TextEven(1).Text = "*"
Else
For i = 0 To 7
cardnumTem(i) = 0
Next i
For i = 0 To cardbits / 8 + 1
cardnumTem(i) = (ascii2ox(inbuf(i + i + 11)) * 16 + ascii2ox(inbuf(i + i + 12))) Mod 256
Next i
'显示奇偶校验
If (fnAa(cardnumTem(0), 7)) Then
TextOdd(0).Text = 1
Else: TextOdd(0).Text = 0
End If
If (fnAa(cardnumTem(cardbits / 8), 6)) Then '26,34,42等的最后一位
TextEven(1).Text = 1
Else: TextEven(1).Text = 0
End If
'显示卡号
Call cardnum
End If
If (OptionHex.Value) Then
TextCardNum.Text = Hexstring
End If
If (OptionDec.Value) Then
TextCardNum.Text = Decstring
End If
If (OptionBin.Value) Then
TextCardNum.Text = Binstring
End If
End If
End If
End Select
End Sub
Private Sub OptionBin_Click()
TextCardNum.Text = ""
TextCardNum.Text = Binstring
End Sub
Private Sub OptionDec_Click()
TextCardNum.Text = ""
TextCardNum.Text = Decstring
End Sub
Private Sub OptionHex_Click()
TextCardNum.Text = ""
TextCardNum.Text = Hexstring
End Sub
Private Sub Timer1_Timer()
Dim cmdbuf(14) As Byte
Dim i, temp1, temp2 As Byte
If (mscommOK) Then
cmdbuf(0) = (&H3A) ':
cmdbuf(1) = (&H30) 'address
cmdbuf(2) = (&H31)
cmdbuf(3) = (&H31) 'function code
cmdbuf(4) = (&H37)
cmdbuf(5) = (&H30) '数量
cmdbuf(6) = (&H31)
cmdbuf(9) = (&H30) 'card bits
cmdbuf(10) = (&H30)
cmdbuf(13) = &HD
cmdbuf(14) = &HA
If (CheckBuz.Value) Then
temp1 = &H1
Else
temp1 = &H0
End If
If (CheckLed.Value) Then '报警继电器控制
temp1 = temp1 * 2 + 1
Else
temp1 = temp1 * 2 + 0
End If
If (CheckRlyAlarm.Value) Then 'led控制
temp1 = temp1 * 2 + 1
Else
temp1 = temp1 * 2 + 0
End If
If (CheckRlyDoor.Value) Then 'buz控制
temp1 = temp1 * 2 + 1
Else
temp1 = temp1 * 2 + 0
End If
cmdbuf(7) = &H30
cmdbuf(8) = ox2ascii(temp1 And &HFF)
temp2 = 0
For i = 0 To 4
temp2 = (temp2 + (ascii2ox(cmdbuf(i + i + 1)) * 16 + ascii2ox(cmdbuf(i + i + 2)))) Mod 256
Next i
temp2 = 256 - temp2 '补码
cmdbuf(12) = ox2ascii(temp2 And &HF)
cmdbuf(11) = ox2ascii((temp2 - (temp2 Mod 16)) / 16)
sending = 1
MSComm1.Output = cmdbuf
End If
'24 50 4c 03 2a 9f 0a 0d
'$PL3 * CK 0x0a 0x0d
End Sub
Private Function cardnum()
Dim rec As Byte '接收返回值
Dim i As Byte
rec = fnBb(cardnumTem(0), cardbits)
rec = cardbits / 8
Hexstring = ""
For i = 0 To (cardbits / 8 - 1)
If cardnumTem(7 - i) < 16 Then
Hexstring = Hexstring + "0" + Hex(cardnumTem(7 - i)) '补上因进制转换而被去掉的前头的0
Else
Hexstring = Hexstring + Hex(cardnumTem(7 - i))
End If
Next i
Binstring = ToBin(Hexstring)
If (Len(Binstring) < (cardbits - 2)) Then
For i = 1 To (cardbits - 2) - Len(Binstring)
Binstring = "0" + Binstring '补上因进制转换而被去掉的前头的0
Next i
End If
Decstring = ToDec(Binstring)
End Function
Private Function ox2ascii(ox As Byte) As Byte
If (ox > 9) Then
ox2ascii = ox + 55
Else
ox2ascii = ox + 48
End If
End Function
Private Function ascii2ox(ascii As Byte) As Byte
If (ascii > 64) Then
ascii2ox = ascii - 55
Else
ascii2ox = ascii - 48
End If
End Function
这是一个门禁的控制软件,麻烦高手多多指导,确实是能力有限~ --------------------编程问答--------------------
3楼,我不是计算机专业的,我是学物理你信么?毕设是搞无线电物理的东西,其实老师是测控专业的。。。。。。
一开始老师让用vc编个程序,我学了一个多月终于搞定了,现在又让我把这个程序看懂并且用vc实现,我真的很汗,而且我们今年赶上奥运毕业的又早,已经快疯了我,所以才到这里来找高人帮忙。vb确实是一窍不通,只能把程序勉强看完~ --------------------编程问答--------------------
6楼 我什么时候都没有说我是计算机专业的啊,那是3楼yy的~~~~ --------------------编程问答-------------------- 只欣赏楼主的分。 --------------------编程问答--------------------
计算机专业的不懂VC的多了去了,电脑盲都有一堆,我就是计算机专业的,我们班连内存和硬盘都分不清楚的都有:哎呀,我的内存只有80G,太少了…… --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 回帖是一种美德!传说每天回帖即可获得 10 分可用分! --------------------编程问答-------------------- 其实主要不是不懂C不懂C++,是不太懂MFC…… --------------------编程问答-------------------- 只可惜我没试过用VC写串口程序~不懂! --------------------编程问答-------------------- 学习 --------------------编程问答-------------------- 只欣赏楼主的分。 --------------------编程问答--------------------
没错,MFC真是难…… --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 我不懂vc,只能勉强把程序看懂
--------------------编程问答-------------------- --------------------编程问答--------------------
俺计算机专业,会VB不会VC,莫非要被BS?
C倒是懂一些,吃饭的家伙。
--------------------编程问答-------------------- Private Function ascii2ox(ascii As Byte) As Byte
If (ascii > 64) Then
ascii2ox = ascii - 55
Else
ascii2ox = ascii - 48
End If
End Function --------------------编程问答-------------------- jf................... --------------------编程问答-------------------- ,jf。。。。 --------------------编程问答-------------------- --------------------编程问答-------------------- 回帖是一种美德!传说每天回帖即可获得 10 分可用分! --------------------编程问答-------------------- --------------------编程问答-------------------- 用美德换10分了~~~~ --------------------编程问答--------------------
呵呵 --------------------编程问答--------------------
那就不错了,我毕业的班里面还有不知道主机是什么的呢 --------------------编程问答-------------------- --------------------编程问答-------------------- ?????? --------------------编程问答-------------------- --------------------编程问答--------------------
我也有美德 --------------------编程问答-------------------- 回帖是一种美德!传说每天回帖即可获得 10 分可用分! --------------------编程问答--------------------
这么说,我也有了 --------------------编程问答-------------------- KAO!
楼上的挖什么坟呀~~~~~~~ -_-!!!
--------------------编程问答-------------------- 结帖率:26.32%
补充:VB , 非技术类