Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Указатели / 10 сообщений из 10, страница 1 из 1
23.08.2004, 11:26
    #32660817
Sasha09
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Указатели
Здрасти всем!
Проблема такая. Использую API, так вот некоторыми параметрами передаваемымы этим самым API являются указатели на адрес строки в памяти. В VB6 эту задачу решала функция strPtr, VB.net ее не поддерживает. Как выкрутиться? Полазил в инете ничего вразумительного не нашел. На sql.ru подобный вопрос задавался, но остался без ответа.
Подскажите кто знает.
Спасибо!
...
Рейтинг: 0 / 0
23.08.2004, 12:50
    #32660994
Max Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Указатели
Попробуй функцию ObjPrt. Может хоть она осталась в .NET?
Если не удасться вызвать и эту функцию, то попробуй преобразовать Unicode-строку в байтовый массив и передать функции (API) этот массив.
Max Pro
...
Рейтинг: 0 / 0
23.08.2004, 12:53
    #32661002
Max Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Указатели
Пардон, не ObjPrt, а ObjPtr конечно же.
Max Pro
...
Рейтинг: 0 / 0
23.08.2004, 13:06
    #32661027
Стр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Указатели
Sasha09В VB6 эту задачу решала функция strPtr, VB.net ее не поддерживает.
а здесь "выкручивайся" атрибутами при объявлении
Код: plaintext
Public Sub M1 (<MarshalAs(UnmanagedType.LPWStr)> msg As String)
...
Рейтинг: 0 / 0
23.08.2004, 13:18
    #32661050
Sasha09
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Указатели
К сожалению ни ObjPtr ни даже ObjPrt не поддерживаются. На счет атрибутов сейчас нужно посмотреть.
Спасибо!
...
Рейтинг: 0 / 0
23.08.2004, 13:55
    #32661138
Sasha09
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Указатели
Что-то не очень понятно как действовать.

Вок кусочек кода

Declare Function lStrCpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpString1 As Integer, ByVal lpString2 As Integer) As Integer

Dim sStatusText As String
Dim usStatusText As String


sStatusText = New String(CChar(" "), 25)

lStrCpy(StrPtr(sStatusText), ipstrStatusText)

Как его можно адаптировать?
...
Рейтинг: 0 / 0
23.08.2004, 14:02
    #32661163
Max Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Указатели
Отсутствие указателей на данные пережить можно, поскольку VB в состоянии передавать данные в процедуру по ссылке, но без указателей на процедуры, некоторые функции API , которые требуют передачи в качестве одного из аргументов указателя на процедуру, написанную пользователем, применять невозможно. Для этого случая предназначен оператор AddressOf. В .NET он работает, так что жить можно.
Max Pro
...
Рейтинг: 0 / 0
23.08.2004, 14:22
    #32661221
Max Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Указатели
Sasha09Что-то не очень понятно как действовать.

Вок кусочек кода

Declare Function lStrCpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpString1 As Integer, ByVal lpString2 As Integer) As Integer

Dim sStatusText As String
Dim usStatusText As String


sStatusText = New String(CChar(" "), 25)

lStrCpy(StrPtr(sStatusText), ipstrStatusText)

Как его можно адаптировать?

Вместо StrPtr(sStatusText) пиши sStatusText.ToCharArray
И попробуй, не прокатит ли в таком виде.
Если нет, то замени ключевые слова ByVal на ByRef.
Если опять не прокатит, то вместо sStatusText.ToCharArray воткни sStatusText
Ну вобщем-то всё.
Сообщи о результатах, интересно.
...
Рейтинг: 0 / 0
23.08.2004, 14:25
    #32661234
Max Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Указатели
Да, чуть не забыл. Ты кажется ошибочку допустил - вместо функции lstrcpyA используешь lStrCpy. Ну или наоборот.
Max Pro
...
Рейтинг: 0 / 0
23.08.2004, 15:45
    #32661465
Sasha09
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Указатели
Max Pro,
я просто переделываю проект с web (vb6) камерой на net, там у меня много нюансов возникло это и структуры вместо типов, слово any, строки фиксированной длины. Спасибо за совет, обязательно напишу о результатах
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Указатели / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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