Указатели

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

thourie
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 18
Зарегистрирован: 12.03.2009 (Чт) 19:32
Откуда: Курск

Указатели

Сообщение thourie » 07.06.2010 (Пн) 19:45

Вопрос банальный до неприличия, или неприличный до банальности: есть ли в VB.NET указатели если есть то как они выглядят и как ими пользоваться!

Samsonov
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 22.04.2010 (Чт) 7:32
Откуда: DC

Re: Указатели

Сообщение Samsonov » 07.06.2010 (Пн) 20:42

thourie писал(а):Есть ли в VB.NET указатели? Как они выглядят, и как ими пользоваться?
Смотря что считать указателем, и какие цели перед собой ставить. Если нужно в рамках управляемого кода ссылаться на экземпляр класса (или структуры, обёрнутой в объект) — это делается автоматически, потому что все переменные такого типа являются ссылками.

Если указатели нужны для общение с неуправляемым кодом, то есть такой тип данных IntPtr, специально предназначенный для хранения хэндлов, например:
Код: Выделить всё
Imports System.Runtime.InteropServices


Dim hBuffer As IntPtr = Marshal.AllocHGlobal(1024)

Dim iResult As Integer = MyExternalFunction(hBuffer)

Dim abBuffer(0 To 1023) As Byte
Marshal.Copy(hBuffer, abBuffer, 0, 1024)

Marshal.FreeHGlobal(hBuffer)

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Указатели

Сообщение Viper » 08.06.2010 (Вт) 18:23

thourie писал(а):Вопрос банальный до неприличия, или неприличный до банальности: есть ли в VB.NET указатели если есть то как они выглядят и как ими пользоваться!
В 99% случаев они в NET не нужны. Для хранения указателя можно использовать либо IntPtr, либо простой Integer, особой разницы не будет. Об указателях и работе с неуправляемой памятью в NET смотреть мою статью на основном форуме (когда оживет).
Весь мир матрица, а мы в нем потоки байтов!

Samsonov
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 22.04.2010 (Чт) 7:32
Откуда: DC

Re: Указатели

Сообщение Samsonov » 08.06.2010 (Вт) 19:44

Viper писал(а):Для хранения указателя можно использовать либо IntPtr, либо простой Integer, особой разницы не будет.
Ага, особенно при переходе на 64-битную платформу — ну совсем никакой разницы. :)


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 45

    TopList