Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#15
  Alt 28. Jan 2003, 22:58
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]
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat