Netzlaufwerk verbinden mit ConnectNetworkDrive
-
Ich würde gerne ein Netzlaufwerk über meine Anwendung verbinden.
Dabei bin ich schon auf ConnectNetworkDrive gestoßen, wessen
Verwendung mir aber noch erheblich Probleme bereitet.DWORD CnetzlfwverbindenDlg::ConnectNetworkDrive(CString slNetPath, char clDrive, bool blPermanent) { char cPath[3] = { char(0), ':', char(0) }; cPath[0] = toupper(clDrive); CString slRemotePath = slNetPath; NETRESOURCE nr; ZeroMemory(&nr, sizeof(nr)); nr.dwScope= RESOURCE_GLOBALNET; nr.dwType = RESOURCETYPE_DISK; nr.dwDisplayType=RESOURCEDISPLAYTYPE_GENERIC; nr.dwUsage=RESOURCEUSAGE_CONNECTABLE; nr.lpLocalName=cPath; nr.lpRemoteName=slRemotePath.c_str(); nr.lpComment=NULL; nr.lpProvider=NULL; int ilResult = WNetAddConnection2(&nr, (LPSTR) NULL, (LPSTR) NULL,blPermanent ? CONNECT_UPDATE_PROFILE : 0); return ilResult; }Hier wird als Laufwerkbuchstabe ein char benötigt. Warum geht das nicht
mit einem normalen CString ? Gebe ich beim Aufruf "Z" als Laufwerk mit
erhalte ich den Fehler "const char[2] kann nicht in char konvertiert werden".
Wie gebe ich denn das "Z" so an, dass es verarbeitet werden kann ?
-
'Z' ?

-
Danke so geht es :-))
Bleibt nur noch die Frage, wie ich CString slRemotePath = slNetPath;
richtig zuweise. Denn hier besteht der Konflikt mit dieser Zeile:nr.lpRemoteName=slRemotePath.c_str();
error C2039: 'c_str': Ist kein Element von 'ATL::CStringT<BaseType,StringTraits>'
with
[
BaseType=char,
StringTraits=StrTraitMFC<char>
]Hier wird doch auch nur in einen string kopiert oder ?
Was macht das für einen Sinn, da es doch schon ein CString ist ?
Wird also doch ein char erwartet ?
Warum finde ich eigentlich keine Infos zu ConnectNetworkDrive in
meiner mit installierten MSDN ?
Ich muss noch eine Menge
Grundlagen büffeln wie ich sehe ...
-
c_str() geht nur bei std::string. Unter MFC heißt es glaub ich GetBuffer().
-
Vielen Dank :-))
