-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

これは、クラス自体ではなく、クラスのインスタンスを使用して、その共有メンバーの1つを修飾していることを意味します。例えば:

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として薄暗くする

WshShellの代わりにnewWshShellを使用するようになりました

于 2010-01-25T12:28:37.690 に答える