Модераторы: Partizan, gambit
  

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Указатели и работа с ними в Шарпе 
V
    Опции темы
CYBERDREAM
Дата 20.12.2007, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 11
Всего: 28



Доброго времени суток народ. Есть кусок небезоспасного кода, и хотелось бы убрать его (не удалением).
В этом коде у меня используется указатель
Код

    ushort *epcIter = EPCData;
    while(...)
    {
        epcIter++;
    }

Как мне быть если 
Код

    IntPtr *epcIter = EPCData;
    while(...)
    {
        //как сдвинуть вправо?
    }
 smile 


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
stab
Дата 20.12.2007, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 22
Всего: 48



а смысл? IntPtr* всё равно небезопасный тип. даже если использовать просто IntPtr, то для получения данных хранящихся по этому псевдо-указателю, его всё равно надо будет привести к реальному указателю, что есть небезопасный код. если имеется уже готовый указатель в виде IntPtr и получать данные по указателю не надо, а просто надо манипулировать адресами, например нужно передать указатель в native-функцию, то:

Код

class Program
{
    const uint SizeOfEPCData = 10;

    static void Main(string[] args)
    {
        IntPtr entry = IntPtr.Zero; // first EPCData entry

        switch (IntPtr.Size)
        {
            case 4:
                {
                    entry = new IntPtr(entry.ToInt32() + SizeOfEPCData); // next entry
                }
                break;
            case 8:
                {
                    entry = new IntPtr(entry.ToInt64() + SizeOfEPCData); // next entry
                }
                break;
        }
    }
}


или просто вести всю арифметику в целых числах, а при необходимости преобразовывать в IntPtr.


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
CYBERDREAM
Дата 20.12.2007, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 11
Всего: 28



данные по указателю увы надо получать.
Сейчас попробуем попробовать поиграться на основе твоего кода smile 


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
stab
Дата 20.12.2007, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 22
Всего: 48



никак ты их не получишь без указателей или внешнего native-кода или Marshal.Copy. последний вариант кажется безопасным, но помечен SecurityPermissionFlag.UnmanagedCode. smile


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
CYBERDREAM
Дата 20.12.2007, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 11
Всего: 28



Тогда так и оставим. Thx  smile 


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
CYBERDREAM
Дата 20.12.2007, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 11
Всего: 28



Мне вот интересно, что человек пишет ,а то никак не успеваю. А ведь интересно  smile Вечно скрыто сообщение уже


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
mr.DUDA
Дата 20.12.2007, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



CYBERDREAM, скрыто за дело smile 


--------------------
user posted image
PM MAIL WWW   Вверх
CYBERDREAM
Дата 20.12.2007, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 11
Всего: 28



GoshaNahui - перед тем как будешь матерится, отпишись, а то страсть как хочется почитать  smile , ибо злые модераторы скрывают великие речи  smile 


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
tol05
Дата 20.12.2007, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 63
Всего: 170



да не было там ничего великого, CYBERDREAM, ты уж мне на слово поверь ... А насчет почитать... Чернухи в инете тебе мало что-ли?



--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
CYBERDREAM
Дата 20.12.2007, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 11
Всего: 28



ну про великое - это я так, чуть приувеличил. Удивляет что это не первое нарушение, а лишь отделывается минусами и корректировками сообщений, не пора бы грохнуть (имхо, модераторам конечно виднее)


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
tol05
Дата 20.12.2007, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 63
Всего: 170



Дык вроде грохнули ... Но, правда, с шансом "оживления" ... в будущем... (желательно-НЕ-обозримом ИМХО)

smile


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
CYBERDREAM
Дата 20.12.2007, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 11
Всего: 28



Аминь  smile 


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
mr.DUDA
Дата 21.12.2007, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Модератор: Тема закрыта (развели тут флейм)


--------------------
user posted image
PM MAIL WWW   Вверх
  
Закрытая темаСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0770 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.