The simple bits first:
- Your Delphi function needs to return an integer.
- The string parameters are wrong. Delphi string is a managed private Delphi type. Those params should be PAnsiChar, pointer to null-terminated B bit character array.
Now to the string array. From @TLama's link it appears that arrays cannot be marshaled. So, you'll have to concatenate them, perhaps using double null-terminated strings. Or call the function multiple times and allow the DLL to collect the strings into an array or list.