-1

如何修复以下错误:

   Error 1: "Reference to a non-shared member requires an object reference."

在线的:

   shortCut = CType(WshShell.CreateShortcut(creationDir & "\" & shortcutName & 
   ".lnk"), IWshRuntimeLibrary.IWshShortcut) 

这是我的完整代码示例(如果需要上下文):

Imports IWshRuntimeLibrary
Module MainModule
    Public Function CreateShortCut(ByVal shortcutName As String, ByVal creationDir As String, ByVal targetFullpath As String, ByVal workingDir As String, ByVal iconFile As String, ByVal iconNumber As Integer) As Boolean
        Try
            If Not IO.Directory.Exists(creationDir) Then
                Dim retVal As DialogResult = MsgBox(creationdir & " does not exist. Do you wish to create it?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo)
                If retVal = DialogResult.Yes Then
                    IO.Directory.CreateDirectory(creationDir)
                Else
                    Return False
                End If
            End If

            Dim shortCut As IWshRuntimeLibrary.IWshShortcut
            shortCut = CType(WshShell.CreateShortcut(creationDir & "\" & shortcutName & ".lnk"), IWshRuntimeLibrary.IWshShortcut)
            shortCut.TargetPath = targetFullpath
            shortCut.WindowStyle = 1
            shortCut.Description = shortcutName
            shortCut.WorkingDirectory = workingDir
            shortCut.IconLocation = iconFile & ", " & iconNumber
            shortCut.Save()
            Return True
        Catch ex As System.Exception
            Return False
        End Try
    End Function
4

2 回答 2

2

这意味着您正在使用类的实例来限定其共享成员之一,而不是类本身。例如:

Class C
    Public Shared x As Integer
End Class
Module M
    Sub S(instance as C)
        dim x1 = instance.X 'warning
        dim x2 = C.X 'proper
    End Sub
End Module
于 2009-12-29T01:14:01.647 回答
0

你需要创建一个 WshShell 的实例,我认为:

将 NewWshShell 调暗为新的 WshShell

现在使用 newWshShell 代替 WshShell

于 2010-01-25T12:28:37.690 回答