Вы также получите эту ошибку, если забудете new
:
String s = String();
в сравнении с
String s = new String();
Вы можете подключиться к общему сетевому ресурсу с помощью WNetAddConnection3 () :
NETRESOURCE nr;
nr.dwType = RESOURCETYPE_ANY;
nr.lpLocalName = NULL;
nr.lpRemoteName = dcpath;
nr.lpProvider = NULL;
dw = WNetAddConnection3(NULL, &nr, NULL, NULL, CONNECT_INTERACTIVE | CONNECT_PROMPT);
. Появится запрос на учетные данные. Я считаю, что строка пути должна указывать на каталог, а не на файл; обычно это будет \\server\share
.
Если соединение выполнено успешно, вы можете использовать CreateFile (), чтобы открыть файл. MPR автоматически использует существующее соединение.
Вы должны использовать WNetCancelConnection () , чтобы отключиться от сервера, как только вы закончите использовать файл.
One потенциальным преимуществом такого подхода к Remy's является то, что он работает, даже если ваши учетные данные на сервере отличаются от учетных данных на локальной машине.
Используйте CredUIPromptForCredentials()
или CredUIPromptForWindowsCredentials()
, чтобы получить учетные данные пользователя, затем используйте LogonUser()
и ImpersonateLoggedOnUser()
, чтобы выдать себя за этого пользователя, затем вызовите CreateFile()
с вашим UNC-контуром, а затем, наконец, вызовите RevertToSelf()
, чтобы прекратить выдавать себя за руки после закрытия файла.