Pracuję nad projektem DLL w C ++ dla wykonywalnego Delphi. Ten wykonywalny ma strukturę, takie jak: Dane wielkości [] na przykład: 02 00 00 00 // Rozmiar 30 31 32 33 // Dane [0] 34 35 36 37 // Dane nadal [0] ...

0
Nox 15 marzec 2021, 17:50

1 odpowiedź

Najlepsza odpowiedź

Jesteś dosłownie interpretacji danych, więc jest to ważny punkt użycia tutaj reinterpret_cast. Nie bądź zbyt boi się niezdefiniowanego zachowania - przy użyciu Delphi jest niezdefiniowane zachowanie per se.

Najprostszy sposób wydaje się być

private:
DataType& at(size_t i) { 
  assert(i<size);
  return reinterpret_cast<DataType*>(&size+1)[i];
}

Który następnie używasz jako bloku budynku.

1
MSalters 15 marzec 2021, 15:28