Hallo zusammen,
ich bin zur Zeit dabei eine Anwendung für WinCE mit Lazarus zu schreiben (Delphi kanns ja leider noch nicht). Dabei muß ich den PDA auf ein Netzlaufwerk mappen. Eigentlich null problemo dachte ich, hatte ich auch schon xmal gemacht.
Funzte aber nicht mit meinen Routinen da WNetAddConnection2W auf WinCE nicht existiert.
Nach googeln bin ich dann auf
WNetAddConnection3 gestoßen. Gut dann schreib ichs halt so! denkste !
beim Compilen sagt mir dann Lazarus bei folgendem Code
Delphi-Quellcode:
function ConnectToNetworkDriveW(LocalName: WideString; RemoteName: wideString; Username: WideString; Password: WideString;
RestoreAtLogon: boolean): DWORD;
var
nres : TNetResource;
dwFlags : DWORD;
begin
dwFlags := 0;
FillChar(nres, SizeOf(nres), #0);
with Nres do
begin
dwType := RESOURCETYPE_DISK;
lpLocalName := PWideChar(LocalName);
lpRemoteName := PwideChar(RemoteName);
lpProvider := nil;
end;
if (RestoreAtLogon) then
dwFlags := dwFlags or CONNECT_UPDATE_PROFILE;
Result := wNetAddConnection3(form3.handle,nres, PWideChar(Password), PWideChar(Username), dwFlags);
end;
Unit2.pas(60,49) Error: Incompatible type for arg no. 2: Got "NETRESOURCE", expected "LPNETRESOURCE"
Also googel ich schon den ganzen nachmittag und bin auf folgenden C# Code gestoßen
Zitat:
#include "windows.h"
#include "winnetwk.h"
#include "aygshell.h" //Shell
API
int
WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nShowCmd) {
NETRESOURCE ns;
DWORD lLastError = NO_ERROR;
ns.dwDisplayType = RESOURCEDISPLAYTYPE_SHARE;
ns.dwScope = 0;
ns.dwType = RESOURCETYPE_ANY;
ns.dwUsage = 0;
ns.lpComment = NULL;
ns.lpLocalName = _T("fileshare");
ns.lpProvider = _T("Microsoft Windows Network");
ns.lpRemoteName = _T("\\\\<NetBios-Name>\\<Share-Name>");
lLastError = WNetAddConnection3(NULL, &ns, _T("<password>"), _T("<username>"), CONNECT_UPDATE_PROFILE);
Meine Frage:
was heißt das & vor dem ns in der letzten Zeile und wie krieg ich das in Lazarus hin.
Im struct von Lazarus steht:
Delphi-Quellcode:
║ NETRESOURCE = record
║ dwScope : DWORD;
║ dwType : DWORD;
║ dwDisplayType : DWORD;
║ dwUsage : DWORD;
║ lpLocalName : LPTSTR;
║ lpRemoteName : LPTSTR;
║ lpComment : LPTSTR;
║ lpProvider : LPTSTR;
║ end;
║ LPNETRESOURCE = ^NETRESOURCE;
Und ich steh irgendwie auf dem Schlauch....
ich hoffe ihr könnt mir helfen
Danke!