Вам лучше использовать строки PAnsiChar () или PWideChar (). Сериализуйте вашу запись в строку, например, примерно так:
procedure MyDLLProc(var RecordAsPString : PChar);
var
s : string;
begin
s := format('%s,%s,%f',[variables.name, variables.units,variables.value]);
StrPCopy(RecordAsPString,s);
end;