Skocz do zawartości
Opublikowano

image.png.a144663d4007d16872d3413c4a1a8bf3.png

 

Cześć wszystkim!

 

W funkcji 'PyTuple_GetUnsignedLong'  która ma na celu przekształcenie danych z Pythona na typ 'unsigned long' w C++, napotykamy problem związany z rozmiarami tych typów danych.
W C++, 'unsigned long' i 'unsigned long long' mogą mieć różne rozmiary co prowadzi do błędów zwłaszcza gdy próbujemy umieścić większą wartość 64-bitową w miejscu przeznaczonym dla wartości 32-bitowej.

 

Rozwiązaniem tego problemu jest zmiana sposobu konwersji.
Zamiast używać funkcji przeznaczonej dla 'unsigned long long', lepiej jest użyć funkcji dla 'long long' i następnie przekonwertować wynik na 'unsigned long'.
Taka zmiana w definicji zapewnia poprawną konwersję i kilka problemów z rozmiarem typów danych, co jest kluczowe dla stabilnego działania gry wykorzystujących C++ i Pythona. 

 

Implementacja:

📂 Lokalizacja pliku: 'ScriptLib -> PythonUtils.cpp'

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

♻️ Zamień

🔐 Ukryta Treść 🔐

 

 

Jeśli nie masz wcale zdefiniowanego makra:

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

 Dodaj:

🔐 Ukryta Treść 🔐

Featured Replies

Opublikowano

Dziękuje, pani Anetka z działu HR powiedziała ze dobra robota 😄

Opublikowano

danke  😄

  • 2 tygodnie później...
Opublikowano

Obrigado

  • 2 tygodnie później...
Opublikowano

Dzięki

  • 3 miesiące temu...
Opublikowano
  • Premium

dziekii

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...