powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Указатели
10 сообщений из 10, страница 1 из 1
Указатели
    #32660817
Sasha09
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здрасти всем!
Проблема такая. Использую API, так вот некоторыми параметрами передаваемымы этим самым API являются указатели на адрес строки в памяти. В VB6 эту задачу решала функция strPtr, VB.net ее не поддерживает. Как выкрутиться? Полазил в инете ничего вразумительного не нашел. На sql.ru подобный вопрос задавался, но остался без ответа.
Подскажите кто знает.
Спасибо!
...
Рейтинг: 0 / 0
Указатели
    #32660994
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй функцию ObjPrt. Может хоть она осталась в .NET?
Если не удасться вызвать и эту функцию, то попробуй преобразовать Unicode-строку в байтовый массив и передать функции (API) этот массив.
Max Pro
...
Рейтинг: 0 / 0
Указатели
    #32661002
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон, не ObjPrt, а ObjPtr конечно же.
Max Pro
...
Рейтинг: 0 / 0
Указатели
    #32661027
Стр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sasha09В VB6 эту задачу решала функция strPtr, VB.net ее не поддерживает.
а здесь "выкручивайся" атрибутами при объявлении
Код: plaintext
Public Sub M1 (<MarshalAs(UnmanagedType.LPWStr)> msg As String)
...
Рейтинг: 0 / 0
Указатели
    #32661050
Sasha09
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожалению ни ObjPtr ни даже ObjPrt не поддерживаются. На счет атрибутов сейчас нужно посмотреть.
Спасибо!
...
Рейтинг: 0 / 0
Указатели
    #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
Указатели
    #32661163
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отсутствие указателей на данные пережить можно, поскольку VB в состоянии передавать данные в процедуру по ссылке, но без указателей на процедуры, некоторые функции API , которые требуют передачи в качестве одного из аргументов указателя на процедуру, написанную пользователем, применять невозможно. Для этого случая предназначен оператор AddressOf. В .NET он работает, так что жить можно.
Max Pro
...
Рейтинг: 0 / 0
Указатели
    #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
Указатели
    #32661234
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, чуть не забыл. Ты кажется ошибочку допустил - вместо функции lstrcpyA используешь lStrCpy. Ну или наоборот.
Max Pro
...
Рейтинг: 0 / 0
Указатели
    #32661465
Sasha09
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Max Pro,
я просто переделываю проект с web (vb6) камерой на net, там у меня много нюансов возникло это и структуры вместо типов, слово any, строки фиксированной длины. Спасибо за совет, обязательно напишу о результатах
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Указатели
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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