Страница: 1 |
Страница: 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
код в студию