2015-03-03 79 views
0

我正在寫一個VB6中的小實用程序,它調用C#.Net類(它帶來了打印機列表),但在調用C#方法時,它拋出的錯誤以下,我無法編譯/運行應用程序。有人可以幫忙嗎?錯誤:預期的函數或變量

VB6代碼:用於方法

Dim retval As Integer 
Dim tbp As NamespaceXYZ.CGETList 
Dim a As String 
Dim col As New Collection 
Set tbp = New CGETList 
retval = tbp.GetDefaultPrinterAndList(col, a) 

C#定義。

public void GetDefaultPrinterAndList(ref Microsoft.VisualBasic.Collection vntPrinterList, ref string defaultPrinter) 
    { 

錯誤: while calling the C# method, it throws the error

+0

你需要使用一個字符串數組來代替 - 混合語言類型可能不起作用。 – 2015-03-03 07:25:38

+0

感謝您的建議,但剛纔我意識到它拋出了這個錯誤,因爲上面的代碼對象沒有在VB中初始化。 當我添加手錶時,發現「tbp」設置爲空。任何想法爲什麼? – atp9 2015-03-03 08:05:09

+0

當你得到編譯錯誤時,它應該帶你到一個特定的行。哪條線? – MarkJ 2015-03-03 12:12:29

回答

1

你宣佈tbp,卻忘了初始化它。

Dim tbp As NamespaceXYZ.CGETList 
'tbp value is currently Nothing 

Set tbp = New NamespaceXYZ.CGETList 
'now it's something. 

注意的是,上述假設NamespaceXYZ.CGETList類有一個默認的構造函數,即你可以創建只使用New一個新的對象。有些課程沒有這個;他們需要你以其他方式創建對象。

相關問題