Den där typen av jämförelser brukar bara funka för enkla datatyper som int, long, float, etc. Du kan kolla om Delphi har någon funktion motsvarande "memcmp()". Med en sådan funktion skulle du kunna jämföra stora minnesblock.
Returnerar false. Varför? De innehåller ju samma data!
Innehåller de även samma id och objfile? Gissningsvis har de olika id. I så fall kommer CompareMem att hitta en skillnad i minnesblocket redan där. Du kanske skulle jämföra enbart medlemmen "map" med hjälp av CompareMem. Då skulle du sannolikt lyckas bättre. Du kanske ska jämföra även objfile, men det beror ju på hur du har tänkt dig att programmet ska fungera.
Om man gör en parallell med C, skulle medlemmen "map" vara en pekare mot en matris av integers. Då kommer pekaren i de båda structerna peka mot varsitt minnesblock, som iofs kan innehålla samma saker, men eftersom det är två skilda minnesblock, kommer adresserna i pekarna vara olika. Därför kommer "CompareMem"-jämförelsen resultera i att structerna skiljer sig från varandra. Pröva därför att jämföra "id" och "objfile" för sig, och sedan "map" med hjälp av "CompareMem". Du får alltså göra flera jämförelser för att ta reda på om structerna innehåller likadana data.
268 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9