2013-03-17 3 views
0

Ответ на мой вопрос, возможно, уже есть, но я не успеваю синтезировать данные в связном решении. Ваш совет приветствуется.Доступ к DLL из VB .NET

Я пишу приложение «Управление пользователями» с помощью 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 "[email protected]" _ 
    (ByVal CmdCode As Integer, ByVal strParam As String) As Boolean 

Private Declare Function SF_FlushCommandQueue Lib "SFrmUt80.dll" Alias "[email protected]" _ 
    (ByVal strWindowTitle As String) As Boolean 

Private Declare Function SF_GetUserName Lib "SFrmUt80.dll" Alias "[email protected]" _ 
    (ByVal strBuffer As String, ByVal BufferSize As Integer) As Integer 

Private Declare Function SF_GetUserID Lib "SFrmUt80.dll" Alias "[email protected]" _ 
    () As Integer 

Private Declare Function SF_GetCmdType Lib "SFrmUt80.dll" Alias "[email protected]" _ 
    () As Integer 

Private Declare Function SF_GetCmdFilename Lib "SFrmUt80.dll" Alias "[email protected]" _ 
    (ByVal strBuffer As String, ByVal BufferSize As Integer) As Integer 

Private Declare Function SF_GetRegisteredMsg Lib "SFrmUt80.dll" Alias "[email protected]" _ 
    () As Integer 

Надеясь это не слишком расплывчатым, мне интересно, как идти об интеграции этой DLL-файл в моем решении, чтобы я мог использовать его функциональные возможности в VB .NET.

Ваша мудрость очень ценится. Спасибо!

ответ

0

.H-файлы не будут иметь большого смысла для вас, так как вы не используете их в управляемой среде. Вы бы просто включили DLL s в свое решение (т. Е. Добавили их в проект в Solution-Explorer).
VS делает для вас все остальное, все, что вам нужно сделать, это то, что вы уже сделали, объявить функции из библиотеки в исходном коде и вызвать функции.

На странице MSDN есть статья об этом.

+1

OP явно не говорит о COM-компоненте или .NET-сборке, а в библиотеке C API. Таким образом, библиотека не должна включаться/управляться в решении. Вы просто объявляете функции. –

+0

И как вы ссылаетесь на DLL, если проект не знает, что он существует? –

+1

У вас нет. Связывание выполняется во время выполнения, а не по проекту, а по функциям WinAPI ('LoadLibrary' и' GetProcAddress'). Проект должен знать только о DLL-файле для целей развертывания, если он должен быть скопирован во время процесса. Однако, что касается решения, это просто еще один файл ресурсов. –

Смежные вопросы