빌더(TWx) 님이 쓰신 글 :
: 서영재 님이 쓰신 글 :
: : 일단 소스입니다.
: :
: : NETRESOURCE NetRes;
: : NetRes.dwType=RESOURCETYPE_DISK;
: : NetRes.dwDisplayType = RESOURCEDISPLAYTYPE_GENERIC;
: : NetRes.dwUsage = RESOURCEUSAGE_CONNECTABLE;
: : NetRes.lpLocalName="z:";
: : NetRes.lpRemoteName="\\\\myth0312\\영어인터뷰";
: : NetRes.lpProvider=NULL;
: : DWORD Result=WNetAddConnection2(&NetRes,"","",CONNECT_UPDATE_PROFILE);
: : if(Result==NO_ERROR)
: : ShowMessage("OK");
: : else ShowMessage("NG");
: :
: : 여기서 자꾸 NG만출력되네요
: :
: : "myth0312" 란컴퓨터는 제컴퓨터이고, "영어인터뷰"라는 폴더를 공유해놨습니다.
: : 인터넷뒤져보니 lpLocalName을 다른 드라이브로 해놓은것들도 있던데 그렇게 해도 안되네요.
: :
: : 옵션값을 설정해줘야하나요???
: :
: :
:
:
: 답변:
:
:
: 공유하는 PC들 간의 OS 버전 , SMB 프로토콜 버전, API 리턴 값 등을 구체적으로 적어놓아야 답변이 가능하죠.
:
: WNetAddConnection2() API를 사용할 때...
: 파라미터 lpPassword와 lpUsername가 empty string인 ""이냐, 아니면 NULL 이냐에 따라 의미가 다릅니다.
:
: 디폴트 credential 로 디렉토리를 공유해 놓았으면...
: 아래와 같이 NULL 값을 주어야 합니다.
:
:
: // unicode 버전.
: NETRESOURCEW nres;
: memset(&nres, 0, sizeof(nres));
:
: nres.dwType = RESOURCETYPE_ANY;
: nres.lpLocalName = (LPWSTR)L"Z:";
: nres.lpRemoteName = (LPWSTR)L"\\\\localhost\\test";
:
: DWORD Flags = CONNECT_TEMPORARY;
: DWORD RetVal = WNetAddConnection2W(&nres, NULL, NULL, Flags);
:
: if (RetVal != NO_ERROR)
: wprintf(L"WNetAddConnection2 failed with error: %u\n", RetVal);
:
:
: Flags 파라미터를 CONNECT_UPDATE_PROFILE로 사용하면 시스템 리부팅해서 다시 로긴 할 때 마다
: 네트웍 드라이브가 생성되므로, 임시로 현재 세션 중에만 공유 드라이브를 사용할 때는 CONNECT_TEMPORARY로 사용.
:
:
: