Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net Visual Studio-VB-Windows窗体项目-';变量';未声明。可能无法进入_Vb.net_Visual Studio 2012_Lync 2010 - Fatal编程技术网

Vb.net Visual Studio-VB-Windows窗体项目-';变量';未声明。可能无法进入

Vb.net Visual Studio-VB-Windows窗体项目-';变量';未声明。可能无法进入,vb.net,visual-studio-2012,lync-2010,Vb.net,Visual Studio 2012,Lync 2010,我正试图为一个简单的Lync“bot”编译这段代码 我正在使用Visual Studio 2013并安装了Lync 2010 SDK(和Lync 2010客户端)。我知道该SDK中所需的DLL已正确导入,因为我已在PowerShell项目的其他地方成功使用了它 在尝试构建解决方案时,我遇到了与该站点上的第一个评论者相同的问题,但没有得到解决方案。我在“Extensions”下添加了对以“Microsoft.Lync”开头的任何内容的引用(共有4个)。我的具体错误: ------ Build st

我正试图为一个简单的Lync“bot”编译这段代码

我正在使用Visual Studio 2013并安装了Lync 2010 SDK(和Lync 2010客户端)。我知道该SDK中所需的DLL已正确导入,因为我已在PowerShell项目的其他地方成功使用了它

在尝试构建解决方案时,我遇到了与该站点上的第一个评论者相同的问题,但没有得到解决方案。我在“Extensions”下添加了对以“Microsoft.Lync”开头的任何内容的引用(共有4个)。我的具体错误:

------ Build started: Project: WindowsApplication1, Configuration: Debug Any CPU ------
C:\Users\MyUser\WindowsApplication1\WindowsApplication1\Form1.vb(31) : error BC30451: '_InitializeFlag' is not declared. It may be inaccessible due to its protection level.
C:\Users\MyUser\WindowsApplication1\WindowsApplication1\Form1.vb(46) : error BC30451: 'LycConversation' is not declared. It may be inaccessible due to its protection level.
C:\Users\MyUser\WindowsApplication1\WindowsApplication1\Form1.vb(46) : error BC30451: 'Lyc' is not declared. It may be inaccessible due to its protection level.
C:\Users\MyUser\WindowsApplication1\WindowsApplication1\Form1.vb(47) : error BC30581: 'AddressOf' expression cannot be converted to 'Object' because 'Object' is not a delegate type.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
以及我的具体代码:

Imports Microsoft.Lync.Model
Imports Microsoft.Lync.Model.Conversation
Public Class Form1
    Public WithEvents _Client As LyncClient
    Public WithEvents _ConversationMgr As Microsoft.Lync.Model.Conversation.ConversationManager
    Private WithEvents _LocalIMModality As InstantMessageModality
    Public _LycConversation As Microsoft.Lync.Model.Conversation.Conversation

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try
            _Client = LyncClient.GetClient()
            _ConversationMgr = _Client.ConversationManager
            Select Case _Client.State
                Case ClientState.Uninitialized
                    _Client.BeginInitialize(AddressOf InitializeCallback, Nothing)
                Case ClientState.SignedIn

                Case ClientState.SignedOut
                    _Client.EndSignIn(_Client.BeginSignIn(Nothing, Nothing, Nothing, Nothing, Nothing))
            End Select
        Catch ex As AlreadyInitializedException
            MessageBox.Show("Another process has initialized Lync")
        Catch ex As Exception

        End Try

    End Sub

    Private Sub InitializeCallback(ByVal ar As IAsyncResult)
        _Client.EndInitialize(ar)
        _InitializeFlag = True
        _Client.EndSignIn(_Client.BeginSignIn(Nothing, Nothing, Nothing, Nothing, Nothing))
    End Sub

    Private Sub _ConversationMgr_ConversationAdded(ByVal sender As Object, ByVal e As Microsoft.Lync.Model.Conversation.ConversationManagerEventArgs) Handles _ConversationMgr.ConversationAdded
        _LocalIMModality = TryCast(e.conversation.Participants(1).Modalities(ModalityTypes.InstantMessage), InstantMessageModality)

    End Sub

    Private Sub _LocalIMModality_InstantMessageReceived(ByVal sender As Object, ByVal e As Microsoft.Lync.Model.Conversation.MessageSentEventArgs) Handles _LocalIMModality.InstantMessageReceived
        Dim strRec As String
        strRec = e.Text.Replace(vbCr, "").Replace(vbLf, "").Replace("'", "''")
    End Sub

    Public Sub SendIM(ByVal strMessage As String)
        Dim modal = DirectCast(LycConversation.Modalities(Lyc.ModalityTypes.InstantMessage), InstantMessageModality)
        modal.BeginSendMessage(strMessage, AddressOf SendMessageCallback, Nothing)
    End Sub

    Private Sub SendMessageCallback(ByVal r As IAsyncResult)

    End Sub

End Class

非常感谢您的帮助。谢谢。

这是原始代码中的一个错误。在上,我发现有人为了类似的目的使用了
Lyc
变量。我将
导入
有效负载复制到我的函数中,如下所示:

Public Sub SendIM(ByVal strMessage As String)
        Dim modal = DirectCast(_LycConversation.Modalities(Microsoft.Lync.Model.Conversation.ModalityTypes.InstantMessage), InstantMessageModality)
        modal.BeginSendMessage(strMessage, AddressOf SendMessageCallback, Nothing)
    End Sub
另一部分是输入错误:
lyconversation
应该是
\lyconversation
,根据Form1类的第四条语句:

Public _LycConversation As Microsoft.Lync.Model.Conversation.Conversation

我无法测试代码是否按预期方式工作,但它现在编译并执行。

这个错误非常简单。这些错误与您的dll无关。你还没有声明这些变量。我不明白那个网站上的一些人(包括其作者)是如何正确编译这段代码的,而我和另一个人没有。声明变量是这样做的-
Dim aVariable As Object
,因此如果你不声明对象,那么在错误状态下它将无法访问。请买一本入门书来学习基础知识,不要只是处理和粘贴你在网上发现的你不知道如何使用的代码。你确定吗?对于
lyconversation
该如何声明?它被用作Lync SDK特有的函数的参数。