从VB .NET访问DLL

时间:2013-03-17 19:55:16

标签: vb.net visual-studio dll header-files solution

我的问题的答案可能已经存在,但我没有成功将数据合成为一致的解决方案。感谢您的建议。

我正在使用Visual Basic(.NET 3.5)和Visual Studio 2012编写“用户控件”应用程序。我收到了一个DLL文件,其中包含我必须访问的功能。另外,我已经获得了相应的.LIB和.H文件,我被告知必须正确使用DLL。我相信DLL是用C语言编写的。

我还提供了一些较旧的VB代码,据说这些代码利用了DLL的功能,即项目中“包含”(或者某些东西)的DLL。你可以说,我对此的把握充其量是微不足道的。这是VB代码:

Private Declare Function SF_AddToCommandQueue Lib "SFrmUt80.dll" Alias "_SF_AddToCommandQueue@8" _
    (ByVal CmdCode As Integer, ByVal strParam As String) As Boolean

Private Declare Function SF_FlushCommandQueue Lib "SFrmUt80.dll" Alias "_SF_FlushCommandQueue@4" _
    (ByVal strWindowTitle As String) As Boolean

Private Declare Function SF_GetUserName Lib "SFrmUt80.dll" Alias "_SF_GetUserName@8" _
    (ByVal strBuffer As String, ByVal BufferSize As Integer) As Integer

Private Declare Function SF_GetUserID Lib "SFrmUt80.dll" Alias "_SF_GetUserID@0" _
    () As Integer

Private Declare Function SF_GetCmdType Lib "SFrmUt80.dll" Alias "_SF_GetCmdType@0" _
    () As Integer

Private Declare Function SF_GetCmdFilename Lib "SFrmUt80.dll" Alias "_SF_GetCmdFilename@8" _
    (ByVal strBuffer As String, ByVal BufferSize As Integer) As Integer

Private Declare Function SF_GetRegisteredMsg Lib "SFrmUt80.dll" Alias "_SF_GetRegisteredMsg@0" _
    () As Integer

希望这不是太模糊,我想知道如何将这个DLL文件集成到我的解决方案中,以便我可以在VB .NET中使用它的功能。

非常感谢你的智慧。谢谢!

1 个答案:

答案 0 :(得分:1)

.H - 文件对您没有多大用处,因为您不在托管环境中使用它们。实际上,您只需将DLL包含在解决方案中(即将它们添加到Solution-Explorer中的项目中)。 VS为您完成剩下的工作,您需要做的就是,如您所知,在源代码中声明库中的函数并调用函数。

MSDN上有一篇关于此的文章。