Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / код на Vb6 в код на VB.NET ??? / 3 сообщений из 3, страница 1 из 1
18.11.2003, 23:24
    #32328054
_ss
_ss
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
код на Vb6 в код на VB.NET ???
1. Подскажите плз, как в своих приложениях на VB6 заменить ф-ции VarPtr, StrPtr, ObjPtr. Я читал, что где-то в дебрях System.Runtime.InteropServices, но где там и как этим пользоваться.
2. Как использовать CopyMemory в VB.NET или есть замена ей. В мох приложениях часто используются выше указанные ...Ptr в ф-ции CopyMemory и вот я застрял.
3. Имеются два UDT:
Public Type X
b1 As Byte
b2 As Byte
b3 As Byte
b4 As Byte
End Type
Public Type Y
n As Integer
End Structure
в VB6 я делал так:

Dim mLong As Y

mLong = LSet(X),

а как это будет в VB.NET.

Большое спасибо.
...
Рейтинг: 0 / 0
18.11.2003, 23:45
    #32328057
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
код на Vb6 в код на VB.NET ???
Дело в том что скорее всего в .NET есть инструменты для решения твоей проблемы, но ИМХО она не в поиске замены указателям из старого васика, тут насколько я знаю, все обьектные переменные являются указателями. Что конкретно ты хочешь сделать? Да CopyMemory , но для чего?
...
Рейтинг: 0 / 0
22.11.2003, 18:02
    #32332209
_ss
_ss
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
код на Vb6 в код на VB.NET ???
Это касается субкласирования. Я ассоциировал объект с сообщением (объект в виде адреса через ObjPtr), которое надо

ловить и когда в WinProc оно наступало, то получал этот адрес и присваивал его интерфейсному классу
так : CopyMemory IClass, pAddrObj, 4. А далее собщение отправлялось субклассированному объекту. В сети встретил

пару примеров работы с CopyMemory через Marshal, но это, мне кажется не то кино. Эти ф-ции выделяют память для

объекта, пишут туда инфу, а затем через CopyMemory читают ее. Но мой объект уже существует в памяти??? И еще

прочитал, что указатели вообще не поддерживаются в управляемой памяти (пока не врубился что это за зверь такой).
Пробовал и так :
Private Function VarPtr(ByVal Target As Object) As Integer

Dim GC As System.Runtime.InteropServices.GCHandle = _
System.Runtime.InteropServices.GCHandle.Alloc(Target, _
System.Runtime.InteropServices.GCHandleType.Pinned)

Dim ret As Integer = GC.AddrOfPinnedObject.ToInt32
GC.Free()
Return ret
End Function

но выдает ощибку с какими-то новыми словечками.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / код на Vb6 в код на VB.NET ??? / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]