| [ CnUnix ] in KIDS 글 쓴 이(By): guest (guest) <210.116.105.112> 날 짜 (Date): 2003년 4월 28일 월요일 오전 11시 39분 49초 제 목(Title): [Q]win98 공유자원 목록 출력 visual C++ 6.0을 이용하여 윈98에서 remote 윈98의 공유자원이름을 알아내는 간단한 프로그램을 작성중입니다. 인수로 받은 (char *) IP주소를 (char FAR*)로 변환시켜서 NetShareEnum 함수에 집어넣어 remote win98의 공유자원목록을 출력시키려하는데 제대로 동작하지가 않는군요. 키즈 고수님들께서 코드를 보시고 조언해주시길.. int EnumNet ( char *lptcTarget ) { NET_API_STATUS s_res ; char FAR *pszServerNm_9x = NULL; short nLevel = 50; struct share_info_50 *pBuf_9x = NULL; struct share_info_50 *pTmpBuf_9x = NULL; unsigned short cbBuffer; unsigned short FAR nEntriesRead = 0; unsigned short FAR nTotalEntries = 0; short nTotalCount = 0; ZeroMemory( &s_res, sizeof(NET_API_STATUS) ); pszServerNm_9x = (char FAR*) malloc( sizeof(CHAR) * 64 ); sprintf( pszServerNm_9x, "\\\\%s", (char FAR*)lptcTarget ); cbBuffer = MAX_ENTRIES * sizeof (struct share_info_50); pBuf_9x = (struct share_info_50 *)malloc(cbBuffer); if (pBuf_9x == NULL) { printf("No memory\n"); } printf("\n"); printf(" [---- Shares on Server\n" ); s_res = NetShareEnum( pszServerNm_9x, nLevel, (char FAR *)pBuf_9x, cbBuffer , &nEntriesRead, &nTotalEntries); if (s_res == ERROR_SUCCESS || s_res == ERROR_MORE_DATA) { if ((pTmpBuf_9x = pBuf_9x) != NULL) { for ( i=1; i < nEntriesRead; i++ ) { printf(" %15s : %s\n", pTmpBuf_9x->shi50_netname, pTmpBuf_9x->shi50_remark); pTmpBuf_9x++ ; } } } return 0 ; } |