【问题标题】:Calling Unmanaged DLL from VB从 VB 调用非托管 DLL
【发布时间】:2010-11-02 14:26:47
【问题描述】:

我在查找在 VB.NET 中对非托管 DLL 进行函数调用的语法时遇到了一些麻烦。有谁熟悉这个吗?

让我们假设在非托管 DLL“Connector.DLL”中有一个“Connected”函数。我想通过创建一个抽象函数调用来调用这个函数。

我看到了一些看起来像

的代码
[DllImport("Connector.DLL")]
Public Shared Function Connect(ByVal intPort)

但是那个语法对我不起作用。

【问题讨论】:

标签: vb.net visual-studio unmanaged


【解决方案1】:

你签出pinvoke.net了吗?

【讨论】:

    【解决方案2】:

    试试下面的代码。

    Public Declare Function Connect Lib "Connector.DLL" (<MarshalAs(UnmanagedType.I4)> ByVal intPort As Integer) As Integer
    

    【讨论】:

      【解决方案3】:

      在 Visual Studio 中,添加对此 Dll 的引用。

      在代码中:

      Dim vr as new COMDllClass()
      vr.FunctionInDll()
      

      编辑每条评论:

      试试这个代码:

      <DllImport("Connector.DLL")> _
      Public Shared Function Connect(ByVal intPort)
      

      【讨论】:

      • 非托管 DLL 不适用于 Visual Studio 引用。
      • 所以这甚至不是一个 COM 可见的 DLL?然后您可能需要编写一个 COM 包装器并从 Visual Basic 中调用它。
      猜你喜欢
      • 2016-02-09
      • 1970-01-01
      • 2014-08-18
      • 1970-01-01
      • 1970-01-01
      • 2011-03-04
      • 2011-02-06
      • 2011-05-22
      • 2011-10-31
      相关资源
      最近更新 更多