Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: .NET и API Добавлено: 19.11.09 01:47  

Автор вопроса:  Luft-on
Почему элементарный код:

Public Class Form1
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Me.Text = FindWindow("MozillaUIWindowClass", vbNullString)
    End Sub
End Class

При нажатии на кнопку Button1 в заголовок окна формы вставляет число совсем не похожее на хендл окна с мозиллой? При этом каждое нажатие на кнопку даёт разные значения. Этот самый код РАБОТАЕТ в ВБ 6.0.
Как это лечится?

Ответить

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

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



ICQ: 300-70-6пятьЪ 

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #1
Добавлено: 19.11.09 08:27
как минимум функция FindWindow не long, а integer

Ответить

Номер ответа: 2
Автор ответа:
 Luft-on



Вопросов: 3
Ответов: 12
 Профиль | | #2 Добавлено: 19.11.09 11:07
как минимум функция FindWindow не long, а integer

Спасибо! Действительно в этом была проблема, я просто смотрел на примеры из VB 6.0, там это действительно тип long.
Если возникнут ещё вопросы, буду обращаться!
Ещё раз спасибо, хорошо когда есть такие форумы, где тебе помогут!

Ответить

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



Вопросов: 29
Ответов: 284
 Web-сайт: ммм.сайта.НЕТ
 Профиль | | #3
Добавлено: 19.11.09 13:14
Кстати да, с переходом на .NET тип Long(VB6) стал Integer(Int32)(VB.NET), а старый Long(Int32)(VB6) стал Long(Int64)(VB.NET), это надо учитывать.

Ответить

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



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #4 Добавлено: 21.11.09 03:47
Паша, не мути.

  1. VB6          VB .NET        CLR
  2. Integer      Short          Int16
  3. Long         Integer        Int32
  4. ----         Long           Int64

Ответить

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



ICQ: 292-514-125 

Вопросов: 1
Ответов: 2
 Профиль | | #5 Добавлено: 24.12.09 21:43
  1. Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
  2.  
  3. Dim h As Integer = FindWindow("", "Untitled - Notepad2")
  4.         MsgBox(h)


Вообще ноль возвращает постоянно)

Ответить

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



ICQ: 292-514-125 

Вопросов: 1
Ответов: 2
 Профиль | | #6 Добавлено: 24.12.09 21:44
Всё заработало,когда передало vbNullString вместо "",вот только почему...это же аналогия.

Ответить

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



Вопросов: 3
Ответов: 64
 Профиль | | #7 Добавлено: 27.12.09 02:32
Это не аналогия, null - пустота (указатель на пустоту), а не "".

Ответить

Страница: 1 |

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



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