none
VB .NET 制作的 dll 无法被 VB .NET 项目引用 RRS feed

  • 问题

  • VB .NET 制作的DLL无法被 .NET 程序引用  
    先用 VB .NET 制作了 DLL 。
    代码:
    Imports System.Drawing

    Public Interface ICustomerInfo
    Function Getpicture(ByVal Bname As String) As Bitmap
    End Interface

    Public Class ResClass

    Implements ICustomerInfo

    Const Updateimage As String = "UpdateButton"

    Function Getpicture(ByVal Bname As String) As System.Drawing.Bitmap Implements ICustomerInfo.Getpicture
    Select Case Bname
    Case Updateimage
    Return (My.Resources.Up.ToBitmap)
    Case Else
    Return (Nothing)
    End Select
    End Function

    End Class

    生成dll文件(XXX.dll)。
    之后,用其他的VB .NET程序引用那个XXX.dll,并声明函数:
    Declare Auto Function Getpicture Lib "XXX.dll" (ByVal s As String) As Bitmap
    发生错误,提示:
    无法在“XXX.dll”中找到名为“Getpicture”的入口点。
    我只希望用.NET方式引用那个dll,如果可能的话,尽量避免转化成com。
    请问,这样的问题怎么解决?应该怎样修改?
    需要Namespace吗?如果需要,代码是什么样的?


    Radon
    2009年3月30日 12:30

答案

  • 你好!
         Declare语句是用来声明Windows API函数的,而你的函数只是一般的函数,不用这样的方式来声明,你可以直接实例化XXX.dll中的类,直接调用那个方法!
    周雪峰
    2009年4月5日 10:35
    版主

全部回复

  • 不需要Declare Auto Function Getpicture Lib "XXX.dll" (ByVal s As String) As Bitmap


    打开对象管理器看下吧   你可以直接访问这个类  生成他的Instance
    热烈庆祝进入4星活跃用户队伍
    有原则的回答问题: 不懂的不去装懂,别人回答得很完整的,没有需要补充的不去蹭分。
    2009年3月30日 12:37
  • 能给点代码吗?
    C# .NET 或 VB .NET 都可以~

    Radon
    2009年4月2日 12:54
  • 如何使用VB.NET制作dll并被成功调用?
    各位高手能给点代码吗?
    Radon
    2009年4月5日 9:40
  • 你好!
         Declare语句是用来声明Windows API函数的,而你的函数只是一般的函数,不用这样的方式来声明,你可以直接实例化XXX.dll中的类,直接调用那个方法!
    周雪峰
    2009年4月5日 10:35
    版主