Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Как вызывать Api в VBNET 2005? Добавлено: 10.07.07 22:30  

Автор вопроса:  Oleg
При каждом вызове WinApi функции возникает какая-то ошибка. Может надо поменять какие-то настройки? Хотя в 6 VsualBasic всё прекрасно работает.

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 Stuart



Вопросов: 5
Ответов: 152
 Профиль | | #1 Добавлено: 10.07.07 23:25
Для использования API-функций в VB.NET необходимо только объявить нужную функцию.

Вот приммер такого обявления и использования:

Public Class Form1
    Inherits System.Windows.Forms.Form
    ...
    ' Объявление API-функции.
    Public Declare Function MyMsgBox Lib "user32.dll" Alias "MessageBoxA" _
    ;(ByVal hWnd As Integer, ByVal strMessage As String, _
            ByVal strCaption As String, ByVal uiType As Integer) _
            As Integer
    ...
    Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click
        ' Вызов API-функции.
        MyMsgBox(0, "Hello!", "Caption", 0)
    End Sub
End Class

В указанном примере мы объявили API-функцию в классе формы и вызываем ее по нажатию на кнопку. Результатом будет появление стандартного MessageBox'а.

Ответить

Номер ответа: 2
Автор ответа:
 Alexei



ICQ: 351674656 

Вопросов: 0
Ответов: 18
 Профиль | | #2 Добавлено: 10.07.07 23:49
Смотря какая ошибка. Есть вероятность неправильного объявления в смысле типов параметров.
Я долго мучался при первом своем вызове API в VB.Net так как не обратил внимание на изменение размеров типов из VB6 в VB.Net. Например, что раньше объявлялось как Long теперь следует объявлять как Integer.

Ответить

Номер ответа: 3
Автор ответа:
 Oleg



Вопросов: 9
Ответов: 16
 Профиль | | #3 Добавлено: 11.07.07 22:38
Да, действительно эта функция работает, получается что в VB6 и VB.NET API вызываются немного по разному.

Ответить

Номер ответа: 4
Автор ответа:
 Oleg



Вопросов: 9
Ответов: 16
 Профиль | | #4 Добавлено: 11.07.07 22:48
<<Есть вероятность неправильного объявления в смысле типов параметров>>

Интересно, а в чём ещё есть отличия в вызове API между
VB6 и VB.NET.

Ответить

Номер ответа: 5
Автор ответа:
 Alexei



ICQ: 351674656 

Вопросов: 0
Ответов: 18
 Профиль | | #5 Добавлено: 13.07.07 11:11
У меня есть две книжки по этому делу и в обоих все в общем сводится к тому чтобы внимательно следить за типом передаваемых аргументов.
Что за функция отказала?

Ответить

Номер ответа: 6
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #6 Добавлено: 13.07.07 18:37
подписался

Ответить

Номер ответа: 7
Автор ответа:
 Oleg



Вопросов: 9
Ответов: 16
 Профиль | | #7 Добавлено: 13.07.07 23:01
<<Что за функция отказала? >>

Вообщем пытался вызвать функцию для получения сведений о системе. Использовал пример вызова API для VB6. Вот ссылка на пример:
http://vbnet.ru/faq/showtopic.asp?id=98
Вроде всё переделал как надо, а всё равно не работает.

Ответить

Номер ответа: 8
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #8 Добавлено: 13.07.07 23:04
код в студию

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам