So, drei Tage den Debugger gequält und nun habe ich wohl den Überltäter entdeckt, weiß aber nicht warum und würde Eure Hilfe nochmals in Anspruch nehmen wollen.
Hier ist die Funktion im Auszug:
function bind2AD(AnsiString dn, AnsiString ldapName)
// --------------------------------------------------
IADs *pObject;
HRESULT hr;
AnsiString sdn2;
wchar_t *pfad;
int iSize;
sdn2 = "LDAP://euad1.dmz2.de.domain.eu/"+dn;
iSize = sdn2.WideCharBufSize();
pfad = new wchar_t(iSize + 1);
sdn2.WideChar(pfad,iSize);
//ADS_SECURE_AUTHENTICATION
hr = ADsOpenObject(L"LDAP://euad1.dmz2.de.domain.eu/CN=....",
L"cn=..................",
L"sicheresPasswort",
NULL,
IID_IADs,
(void**)&pObject);
.........
Ich versuche einen connect auf ein Active Directory zu machen. Das funktioniert einwandfrei ohne Probleme solange ich
sdn2.WideChar(pfad,iSize);
auskommentiert habe. Ich brauche den Pfad in der AD-Funktion als wchar und dachte mit obiger Zeile könnte ich das Ganz umwandeln. Wenn diese zeile jedoch ausgeführt wird, passieren eigenartige Sachen im Speicher. VCL Komponenten mit Namen ".", oder "j" sind plötzlich da und das verursacht natürlich irgendwann eine AccessViolation.
Weiß jemand wo da mein Denkfehler in dem Funktionsaufruf liegt? Gibt es eine alternative aus einem AnsiString einen wchar zu machen?
Danke schon mal im voraus
Manfred
Hier ist die Funktion im Auszug:
function bind2AD(AnsiString dn, AnsiString ldapName)
// --------------------------------------------------
IADs *pObject;
HRESULT hr;
AnsiString sdn2;
wchar_t *pfad;
int iSize;
sdn2 = "LDAP://euad1.dmz2.de.domain.eu/"+dn;
iSize = sdn2.WideCharBufSize();
pfad = new wchar_t(iSize + 1);
sdn2.WideChar(pfad,iSize);
//ADS_SECURE_AUTHENTICATION
hr = ADsOpenObject(L"LDAP://euad1.dmz2.de.domain.eu/CN=....",
L"cn=..................",
L"sicheresPasswort",
NULL,
IID_IADs,
(void**)&pObject);
.........
Ich versuche einen connect auf ein Active Directory zu machen. Das funktioniert einwandfrei ohne Probleme solange ich
sdn2.WideChar(pfad,iSize);
auskommentiert habe. Ich brauche den Pfad in der AD-Funktion als wchar und dachte mit obiger Zeile könnte ich das Ganz umwandeln. Wenn diese zeile jedoch ausgeführt wird, passieren eigenartige Sachen im Speicher. VCL Komponenten mit Namen ".", oder "j" sind plötzlich da und das verursacht natürlich irgendwann eine AccessViolation.
Weiß jemand wo da mein Denkfehler in dem Funktionsaufruf liegt? Gibt es eine alternative aus einem AnsiString einen wchar zu machen?
Danke schon mal im voraus
Manfred
Comment