VB6向VB.Net2005迁移相关知识

时间:2023-02-10 20:52:49

问:

這是VB6.0在Module裡定義的,
Declare Function rf_halt Lib "mwrf32.dll" (ByVal Icdev As Long) As IntegerDeclare Declare Function rf_authentication Lib "mwrf32.dll" (ByVal Icdev As Long, ByVal mode%, ByVal scenr%) As Integer
..........................................
..........................................
..........................................
定義好多類似的,只是參數值不同,是這樣引用的:st=rf_halt(Icdev)),
St = rf_authentication(Icdev, LoadMode, Sector),現在
想改成VB.NET 2005,要怎樣改?急....謝謝....

 

答:

是要修改如何声明吗?

Declare Function rf_halt Lib "mwrf32.dll" (ByVal Icdev As Long) As Integer
Declare Declare Function rf_authentication Lib "mwrf32.dll" (ByVal Icdev As Long, ByVal mode%, ByVal scenr%) As Integer

改为:
Declare Function rf_halt Lib "mwrf32.dll" (ByVal Icdev As Integer) As Int32
Declare Declare Function rf_authentication Lib "mwrf32.dll" (ByVal Icdev As Integer, ByVal mode As Int16, ByVal scenr As Int16) As Int16


 

问:
vb6代码:
Private   Declare   Function   SMSDeliver_ReportCallBack   Lib   "third_gw "   (ByVal   Deliver_Report   As   Long)   As   Long

Private   Sub   Command2_Click()
        SMSDeliver_ReportCallBack   AddressOf   Deliver2
End   Sub

Public   Sub   Deliver2(ByRef   re_type   As   Long)
......
End   Sub

转换为。net后提示要用“委托”,怎么实现?

 

答:

Private   Declare   Function   SMSDeliver_ReportCallBack   Lib   "third_gw "   (   _
                                ByVal   lpfn   As   PROC)   As   Integer
Public   Delegate   Function   PROC(ByRef   re_type   As   Integer)   As   Integer
Public   gobjDelegate   As   PROC=New   PROC(AddressOf   Deliver2)
Public   Sub   Deliver2(ByRef   re_type   As   Integer)
......
End   Sub
Private   Sub   Command2_Click()
        SMSDeliver_ReportCallBack(gobjDelegate)  
End   Sub


 问:
我现在有个图表的控件,要转换成.net的,这个图表控件大量用了line方法
看msdn现在应该用drawline方法了,但是两个方法形式相差太多,我想自己写个
line方法,但是Line [ [Step] (x1,y1)]-(x2,y2)[,颜色][,B[F]]的这种
形式怎么变成相近的.net方法阿,像Line [Step] (x1,y1)]-(x2,y2)表示两个点
这算什么语法现象阿,好像vb6写个函数也不能这样嘛
  大家给点意见,谢谢

答:
vb6
Picture1.Line (x1,y1)-(x2, y2), &HFFFFFF

.net

            Dim PicDC As Graphics
            PicDC = picturebox1.CreateGraphics
            PicDC.DrawLine(New Pen(Color.Red), x1, y1, x2, y2)


 

Imports System.Reflection.Assembly

Imports System.Diagnostics.FileVersionInfo
 
’App.Path

Application.StartupPath


’App.Title

GetExecutingAssembly.GetName.Name


’App.ExeName

GetExecutingAssembly.Location


’App.Major

GetVersionInfo(GetExecutingAssembly.Location).ProductMajorPart


’App.Minor

GetVersionInfo(GetExecutingAssembly.Location).ProductMinorPart


’App.Revision

GetVersionInfo(GetExecutingAssembly.Location).ProductBuildPart


’App.LegalCopyrights

GetVersionInfo(GetExecutingAssembly.Location).LegalCopyright


’App.LegalTrademarks

GetVersionInfo(GetExecutingAssembly.Location).LegalTrademarks


’App.CompanyName

GetVersionInfo(GetExecutingAssembly.Location).CompanyName
 

 


   

相关资源:
http://msdn.microsoft.com/zh-cn/library/ywsayxak(VS.80).aspx

http://www.applevb.com/art/vbnet1.htm
http://www.accessbbs.cn/bbs/blog/?1979/action_spacelist_type_blog.html

http://www.google.cn/search?client=aff-cs-maxthon&forid=1&ie=utf-8&oe=UTF-8&hl=zh-CN&q=vb.net+app.title

 

本项目使用:

 

VB需安装sp6/原项目中删除DAO的引用,先全部更改为ADO


几个关键函数的转换

http://forums.microsoft.com/MSDN-CHT/ShowPost.aspx?PostID=3308070&SiteID=14

http://forums.microsoft.com/MSDN-CHT/ShowPost.aspx?PostID=3308070&SiteID=14

http://www.softwelt.com/Know/KnowDetail-5167860.html


 

将VB6中Line的两个端点转换为.Net中的Label的Top(X)/Left(Y)以及长度