Alegun, Bargest спасибо за советы!
Сделал вот так. Как и в прошлый раз в модуле все отлично работает а в dll не хочет.

Правильно ли я вас понял? Если да, то такой вопрос, символы приходят, но во первых почти всегда одно и тоже (посылаю разные наборы символов), во вторых символы какие то непонятные. Что это такое и как с этим разобраться?
Код:
function readport(hport:Thandle):Pchar; stdcall;
var
Buf : PChar;
dwRead : Cardinal;
begin
Buf := GetMemory(255);
ReadFile(hport, Buf^, 255, dwRead, nil);
result := Buf;
FreeMemory(buf);
end;