2014-01-08 33 views
0

我有一些VB6代碼,我試圖轉換爲.NET,在代碼管道代碼的綁定部分拋出一個錯誤。下面是代碼:使用綁定管道的VB問題

With Pipe 
     .RemoteHost = "127.0.0.1" 
     .RemotePort = CInt("12346") 
     .LocalPort = CInt("12345") 
     .Bind(.LocalPort) 
End With 

的錯誤被拋出時

重載決策失敗,因爲沒有可訪問的「綁定」接受此數目的參數。

我很困惑,因爲這個代碼在VB6工作,.Bind具有.LocalPort

的說法是否有人可以告訴我你將如何在.NET中做到這一點?

+0

您需要告訴我們Pipe是什麼。顯然,它是網絡相關的,但是它的數據類型是什麼?你想用它做什麼? –

+0

@RemyPorter數據類型是字符串 – nate

+1

@nate什麼是'Pipe'的'Type'? 'Dim t As Type = Pipe.GetType()' –

回答

0

我們結束了不需要使用此代碼。由於我無法弄清楚如何讓代碼在.NET中工作,我只是將代碼註釋掉了。我運行並測試了應用程序,並沒有任何問題。我沒有創建應用程序,所以我不知道爲什麼或如何使用該代碼。

1

看起來像你的LocalPort是一個整數類型,而Bind方法需要一個字符串。 VB6會默默地將整數轉換爲一個字符串給你。 VB.NET沒有。嘗試將其更改爲.Bind(.LocalPort.ToString()),這應該工作。我今天做了VB6,但從來沒有VB.NET--所以YMMV。

+0

他們的數據類型已經是一個字符串,所以設置.tostring不會做任何事情(即使我已經看到了解決編譯器錯誤的工作)。無論如何我只是想看看會發生什麼,而且我收到了同樣的錯誤。 – nate

+0

它是如何一個字符串?您將它指定爲Integer:.LocalPort = CInt(「12345」) – Airborne

+0

VB6的Winsock.Bind方法需要一個Long(LocalPort)和一個可選的String(LocalIP)。 – Bob77