我正在尝试访问网络驱动器(\servername 或 \ipadress)。这个想法是驱动器只能通过应用程序访问,并且网络驱动器上的登录应该只由应用程序使用。到目前为止,我只找到了我想要的 WNetUseConnection 函数( http://msdn.microsoft.com/en-us/library/aa385482%28VS.85%29.aspx )。不幸的是,我无法让它工作。代码如下所示:
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)。地址(如果我在此处放置 4 个反斜杠是正确的,但也尝试了两个或根本没有任何反斜杠)用户名和 pswd 是正确的。
所以基本上我的问题是:我如何让上述代码工作?考虑到我的任务,这是正确的方法(如果不是,你会怎么做)?