Da liegt das Problem.
PWideChar
ist ein Zeiger und dein Konstrukt
SpriteResPath + 'irgendwas'
erzeugt eine
temporäre RValue. Der Zeiger kann theoretisch in der nächsten Anweisung schon wieder ungültig sein. Dass das unter 32-Bit funktioniert, war reiner Zufall
Also genauer gesagt: Durch deinen Cast nach
PWideChar
bringst du das interne Ref-Counting des Strings durcheinander. Besteht die Möglichkeit
.ImageName
einfach als
String
zu deklarieren? Das würde dein Problem lösen.