当前位置:编程学习 > VB >>

vb程序转换成vc程序

一个vb版的程序,麻烦高手转换成vc的版本,多谢!!
毕设需要,本人只会用vb,对vc七窍已通六窍~ --------------------编程问答-------------------- 回帖是一种美德!传说每天回帖即可获得 10 分可用分! --------------------编程问答-------------------- 下载不了直接把代码贴上来吧 --------------------编程问答--------------------
引用楼主 lyglife 的帖子:
一个vb版的程序,麻烦高手转换成vc的版本,多谢!! 
毕设需要,本人只会用vb,对vc七窍已通六窍~

“七窍已通六窍”还不能自己写呀,呵呵
我对VC是“一窍不通”,只能说“略懂皮毛”,但是我也
写了很多VC程序,你那"六窍"太假了吧,呵呵 --------------------编程问答-------------------- 附件无法下载。
--------------------编程问答--------------------
引用 3 楼 SupermanKing 的回复:
..........
“七窍已通六窍”还不能自己写呀,呵呵 
我对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 楼 SupermanKing 的回复:
引用楼主 lyglife 的帖子:
一个vb版的程序,麻烦高手转换成vc的版本,多谢!!  
毕设需要,本人只会用vb,对vc七窍已通六窍~ 
 
“七窍已通六窍”还不能自己写呀,呵呵 
我对VC是“一窍不通”,只能说“略懂皮毛”,但是我也 
写了很多VC程序,你那"六窍"太假了吧,呵呵


3楼,我不是计算机专业的,我是学物理你信么?毕设是搞无线电物理的东西,其实老师是测控专业的。。。。。。
一开始老师让用vc编个程序,我学了一个多月终于搞定了,现在又让我把这个程序看懂并且用vc实现,我真的很汗,而且我们今年赶上奥运毕业的又早,已经快疯了我,所以才到这里来找高人帮忙。vb确实是一窍不通,只能把程序勉强看完~ --------------------编程问答--------------------
引用 6 楼 chenjl1031 的回复:
计算机专业的不懂VC,而会VB,我不相信,著名懒人也!!! 
有句话叫作:不懂C语言就不懂计算机! 


6楼 我什么时候都没有说我是计算机专业的啊,那是3楼yy的~~~~ --------------------编程问答-------------------- 只欣赏楼主的分。 --------------------编程问答--------------------
引用 6 楼 chenjl1031 的回复:
计算机专业的不懂VC,而会VB,我不相信,著名懒人也!!!
有句话叫作:不懂C语言就不懂计算机!

计算机专业的不懂VC的多了去了,电脑盲都有一堆,我就是计算机专业的,我们班连内存和硬盘都分不清楚的都有:哎呀,我的内存只有80G,太少了…… --------------------编程问答--------------------
引用 1 楼 zhangzhimin 的回复:
回帖是一种美德!传说每天回帖即可获得 10 分可用分!
--------------------编程问答--------------------
引用 4 楼 Chen8013 的回复:
附件无法下载。 
--------------------编程问答--------------------
引用 6 楼 chenjl1031 的回复:
计算机专业的不懂VC,而会VB,我不相信,著名懒人也!!! 
有句话叫作:不懂C语言就不懂计算机! 
--------------------编程问答-------------------- 回帖是一种美德!传说每天回帖即可获得 10 分可用分! --------------------编程问答-------------------- 其实主要不是不懂C不懂C++,是不太懂MFC…… --------------------编程问答-------------------- 只可惜我没试过用VC写串口程序~不懂! --------------------编程问答-------------------- 学习 --------------------编程问答-------------------- 只欣赏楼主的分。 --------------------编程问答--------------------
引用 16 楼 sworddx 的回复:
其实主要不是不懂C不懂C++,是不太懂MFC……

没错,MFC真是难…… --------------------编程问答--------------------
引用 4 楼 Chen8013 的回复:
附件无法下载。 
--------------------编程问答--------------------
引用 10 楼 vansoft 的回复:
只欣赏楼主的分。
--------------------编程问答-------------------- 我不懂vc,只能勉强把程序看懂
--------------------编程问答--------------------
引用 1 楼 zhangzhimin 的回复:
回帖是一种美德!传说每天回帖即可获得 10 分可用分!
--------------------编程问答--------------------
引用 6 楼 chenjl1031 的回复:
计算机专业的不懂VC,而会VB,我不相信,著名懒人也!!! 
有句话叫作:不懂C语言就不懂计算机! 

俺计算机专业,会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。。。。 --------------------编程问答--------------------
引用 16 楼 sworddx 的回复:
其实主要不是不懂C不懂C++,是不太懂MFC……
--------------------编程问答-------------------- 回帖是一种美德!传说每天回帖即可获得 10 分可用分! --------------------编程问答-------------------- --------------------编程问答-------------------- 用美德换10分了~~~~ --------------------编程问答--------------------
引用 11 楼 alifriend 的回复:
引用 6 楼 chenjl1031 的回复:
计算机专业的不懂VC,而会VB,我不相信,著名懒人也!!!
有句话叫作:不懂C语言就不懂计算机!


计算机专业的不懂VC的多了去了,电脑盲都有一堆,我就是计算机专业的,我们班连内存和硬盘都分不清楚的都有:哎呀,我的内存只有80G,太少了……

呵呵 --------------------编程问答--------------------
引用 11 楼 alifriend 的回复:
引用 6 楼 chenjl1031 的回复:
 计算机专业的不懂VC,而会VB,我不相信,著名懒人也!!!
 有句话叫作:不懂C语言就不懂计算机!


 计算机专业的不懂VC的多了去了,电脑盲都有一堆,我就是计算机专业的,我们班连内存和硬盘都分不清楚的都有:哎呀,我的内存只有80G,太少了……


那就不错了,我毕业的班里面还有不知道主机是什么的呢 --------------------编程问答-------------------- --------------------编程问答-------------------- ?????? --------------------编程问答-------------------- --------------------编程问答--------------------
引用 1 楼 zhangzhimin 的回复:
回帖是一种美德!传说每天回帖即可获得 10 分可用分!


我也有美德 --------------------编程问答-------------------- 回帖是一种美德!传说每天回帖即可获得 10 分可用分! --------------------编程问答--------------------
引用 38 楼 veron_04 的回复:
引用 1 楼 zhangzhimin 的回复:
回帖是一种美德!传说每天回帖即可获得 10 分可用分!


我也有美德

这么说,我也有了 --------------------编程问答-------------------- KAO!
楼上的挖什么坟呀~~~~~~~ -_-!!!
--------------------编程问答-------------------- 结帖率:26.32% 
补充:VB ,  非技术类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,