【解決方法】コード vb6 を VB.NET 2017 に変換する方法を知っている人

プログラミングQA


こんにちは、みんな

Google から検索した以下のコードに問題があります。このコードは vb6 で記述されていますが、Visual Studio 2017 で書き直して編集する必要があります。以下の問題に遭遇します。

コード エラー 1:

Public Function getHTML(address)
    Dim objXmlHttp :    Set objXmlHttp = CreateObject("MSXML2.XMLHTTP.6.0")
    objXmlHttp.Open "get", address
objXmlHttp.send
    getHTML = objXmlHttp.responseText
End Function

以下のプログラムの実行を開始すると、メッセージが表示されます

BC30807 Visual Basic AND  VB.NET 'Let' and 'Set' assignment statements are no longer supported.

Severity	Code	Description	Project	File	Line	Suppression State
Error	BC30807	'Let' and 'Set' assignment statements are no longer supported.	CbRecorder	C:\Users\USER\source\CbRecorder\CbRecorder\Form1.vb	47	Active
BC30800 Visual Basic AND  VB.NET Method arguments must be enclosed in parentheses.

Severity	Code	Description	Project	File	Line	Suppression State
Error	BC30800	Method arguments must be enclosed in parentheses.	CbRecorder	C:\Users\USER\source\CbRecorder\CbRecorder\Form1.vb	48	Active

コード エラー 2:

Private ReadOnly Property Left(modelHtml As Object, v As Integer) As Object
    Get
        Throw New NotImplementedException()
    End Get
End Property

以下のメッセージが表示されます。

BC40003 Visual Basic AND  VB.NET property 'Left' shadows an overloadable member declared in the base class 'Control'.  If you want to overload the base method, this method must be declared 'Overloads'.

コード エラー 3:

Private ReadOnly Property Right(modelHtml As Object, v As Integer) As Object
    Get
        Throw New NotImplementedException()
    End Get
End Property

以下のメッセージが表示されます:

BC40003 Visual Basic AND  VB.NET property 'Right' shadows an overloadable member declared in the base class 'Control'.  If you want to overload the base method, this method must be declared 'Overloads'.

コード エラー 4:

Public Function getHTML(address)
    Dim objXmlHttp :    Set objXmlHttp = CreateObject("MSXML2.XMLHTTP.6.0")
    objXmlHttp.Open "get", address
objXmlHttp.send
    getHTML = objXmlHttp.responseText
End Function
It show me the message below :
BC42104 Visual Basic AND  VB.NET Variable is used before it has been assigned a value. A null reference exception could result at runtime.

このコードを vb.net に編集する方法を知っていれば、私を助けてください。 前もって感謝します

私が試したこと:

誰かがそれを行う方法を知っていることを願っています。

解決策 1

変換しようとしないでください。私のアドバイスです。 同じことを行う VB.NET コードを書くだけです。

まず、MSXML2.XMLHTTP.6.0 を使用しないでください。 System.Xml で組み込み機能を使用します (例: xml – VB.NET の MSXML[^] )。 これにより、リストした最初の 2 つのエラーを回避できます。

同様に、「コード エラー 2」と「コード エラー 3」は、次のように使用すると、おそらく「消える」だけです。 HtmlDocument クラス (System.Windows.Forms) | Microsoft Docs[^]

Code “Error” 4 は問題を完全に説明していますが、.NET コンストラクトを使用すると解消されます

解決策 2

引用:

問題は、このvb6コードが私自身のコードビルドではなく、誰かがGoogleに投稿したことであり、このコードをもう一度書き直そうとしています。 誰かがそれを行う方法を知っていることを本当に願っています

Chill60 の言うとおりです。VB6 が VB.NET にどれほど似ていても、そのような VB6 コードを「最新の言語」に作り直す努力をする価値はありません。

基礎となるフレームワークは、変換の意味をなすにはあまりにも異なっています。元のフレームワークを「仕様」として使用して同じ仕事をするようにコードを書き直す方がはるかに優れています。 最終的に得られるのは、維持できるコードと、他の人が見て「WTE? なぜそんなことをしたの?」と思わないコードです。

やみくもに Google でコードを見つけて、それがまさにあなたが望むものであると期待するのは間違いです…

解決策 3

public csTextBox()
{
    GotFocus += removePlaceHolder;
    LostFocus += setPlaceholder;
}

コメント

タイトルとURLをコピーしました