我試圖訪問網絡驅動器(\ servername或\ ipadress)。這個想法是,只能通過應用程序訪問驅動器,並且網絡驅動器上的登錄名只能由應用程序使用。 到目前爲止,我只發現了WNetUseConnection函數(http://msdn.microsoft.com/en-us/library/aa385482%28VS.85%29.aspx),它看起來像我想要的東西。不幸的是我無法得到它的工作。代碼看起來像:在C++中訪問UNC驅動器/遠程網絡驅動器
NETRESOURCE nr;;
nr.dwType = RESOURCETYPE_DISK;
wchar_t remoteName[] = L"\\\\myremotenetworkdrive";
nr.lpRemoteName = remoteName;
wchar_t pswd[] = L"mypswd";
wchar_t usrnm[] = L"usrname";
int ret = WNetUseConnection(NULL, &nr, pswd, usrnm, 0, NULL, NULL, NULL);
std::cerr << "return code: " << ret << std::endl;
返回代碼是在第一1200(ERROR_BAD_DEVICE)和之後另一函數調用變爲487(ERROR_INVALID_ADDRESS)。地址(如果iam正確的話在這裏放置4個反斜槓,但也嘗試了兩個或根本沒有)用戶名和pswd是正確的。
所以基本上我的問題是:我如何獲得obove代碼的工作?考慮到我的任務是這種正確的方法(如果不是,你會怎麼做)?
`\\ myremotenetworkdrive`看起來更像是一個服務器名稱;你的意思是'\\ server \ share`嗎? – Nate 2011-01-20 15:14:58
是的,服務器上只有文件,通常在瀏覽器中輸入「\\ bla \ folders \ files」在窗口中訪問。 – 2011-01-20 15:20:50