Если msg
заканчивается нулем, как и должно быть, и за 256 символами, которые вы хотите получить, следует нулевой символ, просто выполните
myStr := msg;
Если msg
длиннее, вы можете просто сделать
myStr := Copy(msg, 1, 256);
В этом случае лучшим методом будет
myStr := WideCharLenToString(msg, 256);
при условии, что вы используете Delphi 2009 или более позднюю версию, в которой строки являются Unicode.