Deine for-Schleifen für die Strings sind falsch. Der ertse Buchstabe eines Strings steht an der Position 1 und nicht null. Ob das allerdings für den Fehler verantwortlich ist, kann ich aber nicht sagen. Ist mir nur aufgefallen.
Ach so und man kann nicht so einfach Strings an DLLs übergeben und wieder zurückgeben. Siehe dazu meinen Artikel:
http://www.michael-puff.de/Artikel/StringDLL.shtml