Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi tat. und form. Var-Param. - fuzzt aufeinmal nicht mehr? D2K9 (https://www.delphipraxis.net/132589-tat-und-form-var-param-fuzzt-aufeinmal-nicht-mehr-d2k9.html)

Alter Mann 16. Apr 2009 16:20

Re: tat. und form. Var-Param. - fuzzt aufeinmal nicht mehr?
 
So, so


@oki danke für die Hartnäckigkeit.

Ich hatte den Code mal dahin gehend geändert, aber danach kam die bekante Zugriffsverletzung in WLDAP32.dll.

Also noch mal ein Blick in das SDK:

Zitat:

HRESULT ExecuteSearch(
LPWSTR pszSearchFilter,
LPWSTR* pAttributeNames,
DWORD dwNumberAttributes,
PADS_SEARCH_HANDLE phSearchHandle
);

Parameters
pszSearchFilter
[in] A search filter string in LDAP format, such as "(objectClass=user)".
pAttributeNames
[in] An array of attribute names for which data is requested. If NULL, all attributes are requested and dwNumberAttributes must be -1.
dwNumberAttributes
[in] The size of the pAttributeNames array. If -1, all attributes are requested and pAttributeNames must be NULL.
phSearchHandle
[out] The address of a method-allocated handle to the search context. The caller passes this handle to other methods of IDirectorySearch to examine the search result. If NULL, the search cannot be executed.
Dort steht nun mal nicht [in/out] LPWSTR* pAttributeNames sondern nur LPWSTR* pAttributeNames.

Also liegt (mal wieder) am falschen Typlib-Import.

Delphi-Quellcode:
    function ExecuteSearch(pszSearchFilter: PWideChar; var pAttributeNames: PWideChar;
                           dwNumberAttributes: LongWord; out phSearchResult: Pointer): HResult; stdcall;
ist einfach verkehrt. Es muss richtig so aussehen:
Delphi-Quellcode:
    function ExecuteSearch(pszSearchFilter: PWideChar; pAttributeNames: PWideChar;
                           dwNumberAttributes: LongWord; out phSearchResult: THandle): HResult; stdcall;
Warum das nun so ist, keine Ahnung, war aber schon mit D7 so.

Danke.

oki 16. Apr 2009 16:35

Re: tat. und form. Var-Param. - fuzzt aufeinmal nicht mehr?
 
Hi Alter Mann,

1. funzt es jetzt also?

2. Du hattest in einem vorherigen Post diese Implementation vorgestellt:
Delphi-Quellcode:
function ExecuteSearch(pszSearchFilter: PWideChar; pAttributeNames: PWideChar;
                           dwNumberAttributes: LongWord; out phSearchResult: THandle): HResult; stdcall;
Wo kommt den jetzt die Implementation mit dem var-Parameter her? Ich hatte selber nicht nachgeschaut wie Delphi die implementiert. Oder hast du die Implementation selber vorgenommen?

Gruß oki

Alter Mann 16. Apr 2009 16:44

Re: tat. und form. Var-Param. - fuzzt aufeinmal nicht mehr?
 
:oops:
Ich habe die ADS-Umgebung in VMs und dort den Fehler gemacht die 'ActiveDS_TLB' neu zu importieren.
Dabei hatte ich doch schon eine 'bereinigte' Version. :wall: :wall:

Also nichts für Ungut, werde in Zukunft vorher besser prüfen welche Version von welcher Unit benutzt wird.

Für die Ressourcenverschwendung bitte ich um Entschuldigung.

Alter Mann

oki 16. Apr 2009 17:43

Re: tat. und form. Var-Param. - fuzzt aufeinmal nicht mehr?
 
Zitat:

Zitat von Alter Mann
:oops:
Für die Ressourcenverschwendung bitte ich um Entschuldigung.
Alter Mann

Da bist du nicht alleine :mrgreen:
Und das mit dem prüfen sagt sich immer so leicht. Geht den Menschen wie den Leuten. hauptsache das Problem ist gelöst.

Dann noch einen schönen Abend,

Gruß oki


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:02 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz