Moin Luckie,
wie shl 1 bei GetMem?
Das hab' ich nur dort gemacht, wo ich den Platz für den WideString reserviert habe, alldieweil dies ja schliesslich 2 Byte je Zeichen haben, und meine Ausgangsliterale waren ja
ANSI Strings.
Also einen Runtime Error kann ich mir so auch nicht erklären.
Eine Frage bleibt mir aber noch:
Der 3. Parameter (ui3) soll ein Pointer sein. Wie sieht hier die Deklaration der Jedis aus? Wenn es Borland konform ist müsste dies ein var Parameter sein, so dass Du an dieser Stelle keinen Pointer übergeben darfst. Die Deklaration von ui3 müsste also lauten
ui3 : USER_INFO_3;
und nicht
ui3 : PUSER_INFO_3;
NetApiBufferFree(ui3) ist übrigens schlicht falsch.
Man muss diese Funktion aufrufen, nachdem man eine Funktion verwendet hat, die Speicher reserviert, was NetUserAdd ja nicht tut.
Die Funktion (NetApiBufferFree) wird gar nichts mit dem Pointer anfangen können. Ich würde glatt mal mit einem "unfreundlichen" Returncode rechen (zumindest nicht NERR_SUCCESS).
[EDIT]
Wenn Du schon nicht AllocMem verwenden willst, solltest Du aber, der Ordnung halber, ZeroMemory einbauen.
Ein try/finally wär' auch nicht schlecht
[/EDIT]