我试图访问网络驱动器(\ 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