Einzelnen Beitrag anzeigen

matashen

Registriert seit: 29. Jan 2007
Ort: daheim
460 Beiträge
 
Delphi XE2 Enterprise
 
#1

Was ist & bei C

  Alt 19. Mär 2007, 14:52
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!
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat