powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / перевод функции с C# на C++
5 сообщений из 5, страница 1 из 1
перевод функции с C# на C++
    #34903392
chikanok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!
Помогите перевести следующий код с С# на C++:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
ushort* numPtr2 = (ushort*) (numPtr + 40);
                    num1 = numPtr2[0];
                    numPtr2 = (ushort*) (numPtr + 70);
                    num2 = numPtr2[0];
                    numPtr2 = (ushort*) (numPtr + 0x40);
                    num3 = numPtr2[0];
                    string s = "";
                    byte* numPtr3 = numPtr + 0x38;
                    for (int j = 0; j < 3; j++)
                    {
                        s = s + "" + *(numPtr3++);
                    }
                    num4 = int.Parse(s);
                    numPtr3 = numPtr + 60;
                    s = "";
                    for (int k = 0; k < 2; k++)
                    {
                        s = s + "" + *(numPtr3++);
                    }
                    num5 = byte.Parse(s);
...
Рейтинг: 0 / 0
перевод функции с C# на C++
    #34904225
chikanokПривет!
Помогите перевести следующий код с С# на C++: ...

Видимо речь идет о C++/CLI. Тогда переводится все почти дословно, за исключением пары мест. Хотя неплохо было бы привести "замкнутый" кусок программы (с объявлениями участвующих переменных).
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
typedef unsigned short ushort;
typedef unsigned char byte;

ushort* numPtr2 = (ushort*) (numPtr +  40 );
                    num1 = numPtr2[ 0 ];
                    numPtr2 = (ushort*) (numPtr +  70 );
                    num2 = numPtr2[ 0 ];
                    numPtr2 = (ushort*) (numPtr + 0x40);
                    num3 = numPtr2[ 0 ];
                    System::String s = "";
                    byte* numPtr3 = numPtr + 0x38;
                    for (int j =  0 ; j <  3 ; j++)
                    {
                        s = s + "" + *(numPtr3++); // зачем посередине пустая строка?
                    }
                    num4 = System::Int32::Parse(s);
                    numPtr3 = numPtr +  60 ;
                    s = "";
                    for (int k =  0 ; k <  2 ; k++)
                    {
                        s = s + "" + *(numPtr3++);
                    }
                    num5 = System::Byte::Parse(s);
- как-то так.
...
Рейтинг: 0 / 0
перевод функции с C# на C++
    #34906266
chikanok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет. Перевести надо на чистый С++(WinAPI).
Или хотябы подскажите как сделать!
...
Рейтинг: 0 / 0
перевод функции с C# на C++
    #34906464
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chikanokНет. Перевести надо на чистый С++(WinAPI).
Или хотябы подскажите как сделать!

C# не разу в глаза не видел, но посмею предположить:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
                    unsigned short* numPtr2 = (unsigned short*) (numPtr +  40 );
                    unsigned short num1 = numPtr2[ 0 ];
                    numPtr2 = (unsigned short*) (numPtr +  70 );
                    unsigned short num2 = numPtr2[ 0 ];
                    numPtr2 = (unsigned short*) (numPtr + 0x40);
                    unsigned short num3 = numPtr2[ 0 ];
                    std::string s = "";
                    unsigned char* numPtr3 = numPtr + 0x38;
                    for (int j =  0 ; j <  3 ; j++)
                    {
                        s = s + std::string( 1 , *(numPtr3++));
                    }
                    unsigned short num4 = (unsigned short)atoi(s.c_str());
                    unsigned char *numPtr3 = numPtr +  60 ;
                    s = "";
                    for (int k =  0 ; k <  2 ; k++)
                    {
                        s = s + std::string( 1 , *(numPtr3++));
                    }
                    unsigned short num5 = (unsigned short)atoi(s.c_str());

типа, того... вместо приведения с стиле Си лучше использовать static_cast<> или reinterpret_cast<>
...
Рейтинг: 0 / 0
перевод функции с C# на C++
    #34914488
chikanokНет. Перевести надо на чистый С++(WinAPI).
Или хотябы подскажите как сделать!

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
typedef unsigned short ushort;
typedef unsigned char byte;

ushort* numPtr2 = (ushort*) (numPtr +  40 );
                    num1 = numPtr2[ 0 ];
                    numPtr2 = (ushort*) (numPtr +  70 );
                    num2 = numPtr2[ 0 ];
                    numPtr2 = (ushort*) (numPtr + 0x40);
                    num3 = numPtr2[ 0 ];
                    std::string s( 3 ,  0 );
                    byte* numPtr3 = numPtr + 0x38;
                    for (int j =  0 ; j <  3 ; j++)
                    {
                        s.append( 1 , *(numPtr3++));
                    }
                    num4 = atoi(s.c_str()); // какого типа num4?
                    numPtr3 = numPtr +  60 ;
                    s.clear();
                    for (int k =  0 ; k <  2 ; k++)
                    {
                        s.append( 1 , *(numPtr3++));
                    }
                    num5 = atoi(s.c_str());
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / перевод функции с C# на C++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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