powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Из С++ в C#
6 сообщений из 6, страница 1 из 1
Из С++ в C#
    #38088791
Studentos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, помогите перенести код С++ в C#.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
	uint64 * prev = NULL;

	for (int i=0; i < length; i += BLOCK_SIZE)
	{
		if (prev)
		{
			*(uint64*)(dest + i) = *(uint64*)(src + i) ^ (*prev);
		}
		else
		{
			*(uint64*)(dest + i) = *(uint64*)(src + i);
		}

		prev = (uint64*)(src + i);
	}



Заранее спасибо!
...
Рейтинг: 0 / 0
Из С++ в C#
    #38088809
beg-in-er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StudentosЗаранее спасибо!
try
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
          unsafe void k1()
        {
            int length = 0, BLOCK_SIZE = 0;
            byte[] sarray = new byte[length];
            byte[] darray = new byte[length];
            uint* prev = null;

            fixed (byte* b1 = sarray)
            fixed (byte* b2=darray)
            {
                byte* src = b1;
                byte* dest = b2;
                for (int i = 0; i < length; i += BLOCK_SIZE)
                {
                    if (prev == null)
                    {
                        *(uint*)(dest + i) = *(uint*)(src + i) ^ (*prev);
                    }
                    else
                    {
                        *(uint*)(dest + i) = *(uint*)(src + i);
                    }
                    prev = (uint*)(src + i);
                }
            }

        }
...
Рейтинг: 0 / 0
Из С++ в C#
    #38088816
Studentos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
beg-in-erStudentosЗаранее спасибо!
try
Код: c#
1.
                        *(uint*)(dest + i) = *(uint*)(src + i) ^ (*prev);



Ссылка на объект не указывает на экземпляр объекта.
...
Рейтинг: 0 / 0
Из С++ в C#
    #38088832
Mozok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Studentos,

не нужен там if
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
byte[] dest = ...
byte[] src = ... // не знаю, чем они инициализируются
ulong prev = 0;
for (int i = 0; i < length; i += BLOCK_SIZE)
{
    ulong newValue = BitConverter.ToUInt64(src, i) ^ prev;
    Array.Copy(BitConverter.GetBytes(newValue), 0, dest, i, 8);
    prev = BitConverter.ToUInt64(src, i);
}
...
Рейтинг: 0 / 0
Из С++ в C#
    #38088835
Mozok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Studentos,

Хотя даже можно так:
Код: c#
1.
2.
3.
ulong newValue = BitConverter.ToUInt64(src, i) ^ prev;
Array.Copy(BitConverter.GetBytes(newValue), 0, dest, i, 8);
prev ^= newValue;
...
Рейтинг: 0 / 0
Из С++ в C#
    #38088847
beg-in-er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StudentosСсылка на объект не указывает на экземпляр объекта.
ясно дело.
я же писал без студии. надо заменить == на !=
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Из С++ в C#
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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