Не совсем так. С юникодом там чуть-чуть посложнее.
Попробуй примерно так:
Код:
type
TCyrString = AnsiString(1251); // указываем кодовую страницу
var
a_s : TCyrString;
apc : PAnsiChar;
s : String; // UnicodeString by default
begin
...
dll_function_call(apc);
a_s := TCyrString(apc);
s := a_s;
Собственно, мы принудительно сообщаем компилятору кодовую страницу для AnsiString. Ну а дальше он должен все сделать сам.