Seite 1 von 1

NetGetDCName funktioniert nicht

Verfasst: 28.02.2005 14:42
von stbi
Moin! Habe folgendes gecodet, um den Namen des Domain Controllers meiner Domain rauszufinden. Kann das bitte mal jemand checken, ob ich da was falsch mache oder nen Denkfehler drinhabe? Oder es in seiner Domain ausprobieren, ob es da funktioniert? Ich kriege immer nur nen Backslash zurück :cry:

Code: Alles auswählen

#NERR_Success = 0

OpenConsole()


rc.l = NetGetDCName_(#NULL, #NULL, @bufptr)

If rc = #NERR_Success
  dc.s = PeekS(bufptr)
  Debug "NetGetDCName: DC: " + dc
  PrintN(dc)
Else
  Debug "NetGetDCName: Fehler: " + Str(rc)
EndIf

NetApiBufferFree_(bufptr)

CloseConsole()
Danke im voraus,
Stefan

Verfasst: 28.02.2005 14:49
von freedimension
Hi Stefan

Müsste bufptr nicht noch mittels Space initialisiert werden?

[c]bufptr.s = Space(1000)[/c]

Gruß
Mirko

Verfasst: 28.02.2005 15:04
von stbi
freedimension hat geschrieben:Müsste bufptr nicht noch mittels Space initialisiert werden?

[c]bufptr.s = Space(1000)[/c]
Nö, die NetApi ist so freundlich und liefert nur einen Pointer auf einen von ihr allokierten Bereich zurück. Deshalb muss ich bufptr nicht explizit initialisieren. Dafür gebe ich der NetApi nachher per Api-Call ihren Puffer wieder zurück. Das funktioniert ja auch, ich krieg ja einen Bufptr gesetzt zurück, und die Funktion liefert auch keinen Fehlercode, sondern Success, das ist es ja, was mich so frustriert :?

Verfasst: 28.02.2005 15:30
von freedimension
Obwohl ich fast sicher bin, dass du ein NT-basiertes System verwendest wollte ich's doch mal erwähnen. Unter ME/98/95 musst du den Speicher doch selber reservieren und wieder freigeben.

Verfasst: 28.02.2005 15:44
von stbi
XP Pro :mrgreen:

Verfasst: 02.03.2005 11:30
von stbi
habs mittlerweile selbst rausgefunden ... :allright:

Die Funktion liefert Unicode zurück, da kann PeekS() natürlich nicht funktionieren, erst muss der Unicode-String mit WideCharToMultiByte_() PB-verträglich gemacht werden.

Ich hasse Unicode, ist so unnötig wie ein Kropf ... >_<

Verfasst: 02.03.2005 11:47
von MVXA
Sag das nicht in Asien. Die reißen dir den Kopf ab ;). Unicode macht es möglich, dass alle Programme auf eine Plattform laufen und trozdem jeder seine Schrift lesen kann.

Verfasst: 02.03.2005 13:13
von stbi
ASCII RULEZ !!! :lol: