十年網站開發(fā)經驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網站問題一站解決
.NET還是需要一定的處理工作的。本文將為大家介紹遷移的過程。向您推薦《VB.NET教程 - Visual Basic.NET開發(fā)指南》
成都創(chuàng)新互聯總部坐落于成都市區(qū),致力網站建設服務有做網站、成都網站建設、網絡營銷策劃、網頁設計、網站維護、公眾號搭建、小程序設計、軟件開發(fā)等為企業(yè)提供一整套的信息化建設解決方案。創(chuàng)造真正意義上的網站建設,為互聯網品牌在互動行銷領域創(chuàng)造價值而不懈努力!
在工作中,可能會碰到需要將VB編寫的代碼遷移到VB.NET的情況,有好多細節(jié)需要處理。好在互聯網發(fā)展了這么多年,好多問題在互聯網上都有答案,所以需要的時候搜索一下就能解決。
本人也碰到了從VB遷移到VB.NET的情況,現將碰到的問題及其解決方法或替代方法做一個總結,方便后來人。
首先,建議看一下這篇英文文章《Converting VB6 to VB.NET》,講述了一般的遷移步驟。
其次,下載Microsoft Visual Basic Power Pack
TAG 可以這樣用
在一組數據(SQL)提取的數據結果(姓名、班級、年齡。。。)要顯示到LABEL
那么不用tag的話,需要做成LABEL1.CAPTION=AAA.FIELDS("姓名").VALUE
LABEL2.CAPTION=AAA.FIELDS("年齡").VALUE
建立LABEL數組,利用TAG,將字段特性寫到TAG里
label1(1).tag="姓名"
LABEL1(2).TAG="年齡"
提取數據時,可以用循環(huán)
FOR I=1 TO LABEL1.COUNT
LABEL1(I).CAPTION= AAA.FIELDS(LABEL1(I).TAG).VALUE
NEXT I
Dim?file1?As?FileStream
filename?=?"c:\temp\MyTest.txt"
Dim?GetData(4)?As?Byte,?s(4)?As?Char
file1?=?System.IO.File.OpenRead(filename)
Dim?CMGs?As?Long
Dim?DPBo?As?Long
Dim?i?As?Integer?=?0,?j?As?Integer
While?file1.Read(GetData,?0,?5)??0
i?=?i?+?1
For?j?=?0?To?4
s(j)?=?ChrW(GetData(j))
Next
If?s?=?"CMG="""?Then?CMGs?=?i
If?s?=?"[Host"?Then?DPBo?=?i?-?2?:?Exit?While
End?While
主要是vb.net取消了定長字符串, 所以用字節(jié)數組讀入, 還得轉成字符數組來比較.
不知道你想實現什么功能。
如果你的意思是使用某種WINDOW API相對應的功能。需要查看MSDN中
.NETFRAMEWORK是否有相關的類庫與函數。
VB中Declare 用于在模塊級別中聲明對動態(tài)鏈接庫 (DLL) 中外部過程的引用。
可以引用windows api的函數。
但是如果你需要尋找一些你需要的類似WINDOWSAPI功能的函數。例如:FindWindow. 有一些函數功能類似。
例如 :Process currentProcess = Process.GetCurrentProcess();
IntPtr hWndToProcess = currentProcess .MainWindowHandle;
獲得程序進程的窗口。
但是要是獲得桌面窗口這個就要用到api了。
C#.net優(yōu)點:
運算符重載。不安全代碼(指針和固定內存區(qū))、?無符號整數、移位運算。
VB的優(yōu)點:?
即時編譯、靜態(tài)事件綁定、條件異常捕獲、COM兼容類、寬松的類型檢查和變量聲明、Visual Basic Runtime庫、可選參數、帶參數屬性、模塊等語言特征、動態(tài)數組。
通過VB.NET開發(fā)好的程序絕對沒有問題(包括Direct X游戲開發(fā))。雖然VB.NET的資料少,但是只要C#支持的VB.NET都支持(大體上這樣,因為都要經過MSIL中間環(huán)節(jié)。除了指針之類的VB.NET不支持C#支持,但是沒有多大實際用處)。
vb.net的資料以英文資料居多(只有英文資料才有看頭,中國的沒有什么好資料),得看看英文水平過不過關。還有VB.NET的ide也比C#的IDE好得多,代碼看得也舒服。(C#的大括號{}太煩人)。
至于VB6對C的幫助,只是理解上會容易一些,其它用處不大。有VB6的基礎學VBNET會方便一些,但是并不是會VB6就會VB.NET,它們差別也不小。
擴展資料:
NET、C#和ASP.NET之間的區(qū)別 :
1、NET是一個平臺,一個抽象的平臺的概念。
NET 平臺其本身實現的方式其實還是庫,抽象層面上來看是一個平臺。
基本可以理解的NET核心就是NETFramwork。
NETFramework包括兩個關鍵組成元素:
a. CommonLanguageRuntime,公共語言運行時(CLR0)-提供內在管理,代碼安全性檢測等功能。
b. NETFrameworkClassLibrary,.NET 框架類庫(FLC)-提供大量應用類庫,提高開發(fā)效率。
學習NET Framework 是所有.NET開發(fā)人員都必須的,否則開發(fā)NET程序永遠都是停留在‘外功’的招式,NETramework 是NET開發(fā)高手的‘內功’修行之一。
2、C#是一個程序設計語言,僅僅是一個語言。
程序設計語言僅僅是為了方便開發(fā)人員和計算機溝通的工具,雖然 C#語法相對 C 和?C+要多一些,但是相對來看 C#語法都比較固定,這樣使用起來卻都很容易。我認可一位朋友說的,C#的語法更嚴謹!
這里回過來看看NET和C#的關系,不得不提的是NET程序的執(zhí)行過程。
C#符合NETCLR 中的公共語言運行規(guī)范。CLS:commonlanguagespecification,當然所有的NET Language 都是符合這個規(guī)范的例如:VB.NET、XAML 和 C++/CL等等。
C#需要符合NETCLS,是因為NETCLR和JAVA虛擬機類似,有一個中間語言共機器來執(zhí)行。所有不同語言的.NET代碼在執(zhí)行前會被編譯成同樣的中間語言(MSIL),所以所有NET 支持語言都必須符合符合CLS 規(guī)范。
P.S:如果做.NET3.0XAML開發(fā)的朋友,可以嘗試下ildasm.exe看看XAML的應用程序,會發(fā)現原來 XAML其實很簡單。
3、ASP.NET是一個網站開發(fā)的技術,僅僅是.NET框架中的一個應用模型。
用微軟公司ASP.NET快速入門中的一句話來解釋,ASP.NET是用于生成基于Web的應用程序的內容豐富的編程框架。
ASP.net 和C#的區(qū)別:
編寫asp.net通常包括兩部分的代碼:網頁層和后臺處理層,網頁就是用標記語言來寫的,而網頁對應的后臺處理程序則需要.net語言來完成,目前主要是采用c#和vb.net。
可以說整個的asp.net網站通過c#或者vb.net來實現。而c#則是ms .netframework的主要語言,可以用在網站,桌面應用等方面??梢运闶且环N比較流行的編程語言。
如果我理解不錯的話,你是在用vb6調用office 的COM interface來做automation的。要想改變眉頁的東西似乎需要先改變視圖,然后加入一個表格(如果你說的表格是table的話),然后修改table的內容,最后再跳回到main document視圖。
這是我用vba錄的宏,應該很容易修改成vb6的代碼。我手上沒有vb6,不過我估計差不多。大家一般用vb6乃至.net來做office的automation,不知道的東西都是用vba錄宏然后翻譯的。
================
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=2, NumColumns:= _
3, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
wdAutoFitFixed
With Selection.Tables(1)
If .Style "Table Grid" Then
.Style = "Table Grid"
End If
.ApplyStyleHeadingRows = True
.ApplyStyleLastRow = False
.ApplyStyleFirstColumn = True
.ApplyStyleLastColumn = False
.ApplyStyleRowBands = True
.ApplyStyleColumnBands = False
End With
Selection.TypeText Text:="cell1"
Selection.MoveRight Unit:=wdCell
Selection.TypeText Text:="cell2"
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
--------