none
vb.net dll的全局变量的导入和导出 RRS feed

  • 问题

  • 各位老师:

    我在做一个应用,用的是vb.NET 2013.

    在主窗口程序中传递一个结构体给一个dll(这个也是我写的),经过运算后将这个结构体再返回给主窗口程序。

    看网上有C++的dll的全局变量的导入和导出,我不知道vb.NET 有没有相应的功能,如何实现。给个例子最好

    2015年6月26日 1:45

答案

  • Hi Yu Du,

    我写了个简单的例子,我建了一个vb winform项目和 类库项目,在类中我定义了一个静态变量和一个静态方法,然后我在winform项目中添加对类库的引用,同时在code-behind中导入这个类的命名空间,之后便可以使用这个静态的全局变量了。下面的是我的程序截图和代码段,供你参考:

                                       

    Public Class Class1
        Public Shared myparam As String
    
        Public Shared Function MyMethod(myparam As String)
            Return myparam
        End Function
    End Class
    
    Imports ClassLibrary1
    
    Public Class Form1
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            ClassLibrary1.Class1.myparam = "abc"
            Dim ret As String = ClassLibrary1.Class1.MyMethod(ClassLibrary1.Class1.myparam)
            MessageBox.Show(ret)
        End Sub
    End Class

    Best Regards,

    Xavier Eoro


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    2015年7月1日 8:32
  • XaVier Eoro老师:

    非常感谢,谢谢给出了精彩答复,再次感谢

    • 已标记为答案 Yu Du 2015年7月1日 10:19
    2015年7月1日 10:19

全部回复

  • Hi Yu Du,

    我不知道你的这个dll是C++写的,还是vb.net写的,如果是vb.net写的,你可以直接添加引用,然后在code-behind中导入命名空间后直接只用这个全局变量,如果是C++写的dll,那么你可以将dll放在你程序的根目录,然后使用[DllImport]导入,也可以注册为COM
    更多的信息你可以参考这个帖子“C++ DLL in VB.NET”:https://social.msdn.microsoft.com/Forums/vstudio/en-US/4624961a-bbd7-4b19-811c-bda211d2d87c/c-dll-in-vbnet

    关于注册为COM,可以参考这个链接:http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/regsvr32.mspx?mfr=true

    Best Regards,

    Xavier Eoro


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年6月29日 3:25
  • 你好,XavierEoro

    我的dll是vb.NET写的。能给个简单的例子吗?

    2015年6月29日 8:42
  • Hi Yu Du,

    我写了个简单的例子,我建了一个vb winform项目和 类库项目,在类中我定义了一个静态变量和一个静态方法,然后我在winform项目中添加对类库的引用,同时在code-behind中导入这个类的命名空间,之后便可以使用这个静态的全局变量了。下面的是我的程序截图和代码段,供你参考:

                                       

    Public Class Class1
        Public Shared myparam As String
    
        Public Shared Function MyMethod(myparam As String)
            Return myparam
        End Function
    End Class
    
    Imports ClassLibrary1
    
    Public Class Form1
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            ClassLibrary1.Class1.myparam = "abc"
            Dim ret As String = ClassLibrary1.Class1.MyMethod(ClassLibrary1.Class1.myparam)
            MessageBox.Show(ret)
        End Sub
    End Class

    Best Regards,

    Xavier Eoro


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    2015年7月1日 8:32
  • XaVier Eoro老师:

    非常感谢,谢谢给出了精彩答复,再次感谢

    • 已标记为答案 Yu Du 2015年7月1日 10:19
    2015年7月1日 10:19