NET_API_STATUS res; SHARE_INFO_2 si2;
DWORD parm=0;
char sPath[200]; strcpy(sPath,m_path); si2.shi2_netname =TEXT("ShareData$"); //共享名
si2.shi2_type =STYPE_DISKTREE;
si2.shi2_re =TEXT("Shared Dir");
si2.shi2_permissions =ACCESS_READ; //只读
si2.shi2_max_uses=60; 
si2.shi2_current_uses =0;
si2.shi2_path=sPath; 
si2.shi2_passwd =NULL; res=NetShareAdd(NULL,2,(LPBYTE)&si2,&parm);调试发现parm=8,res=123。

解决方案 »

  1.   

    给你一段cb代码WideString netname="adua";
    WideString path="d:\\adua";
    WideString ServerName="myrain";
    LPDWORD Param_Err=NULL;
    SHARE_INFO_502 sh;
    sh.shi502_netname=netname;
    sh.shi502_type=STYPE_DISKTREE;
    sh.shi502_re=NULL;
    sh.shi502_max_uses=0xFFFFFFFF;
    sh.shi502_current_uses=10;
    sh.shi502_path=path;
    sh.shi502_passwd=NULL;
    sh.shi502_reserved=0;
    sh.shi502_security_descriptor=NULL;
    sh.shi502_permissions=TRUSTEE_ACCESS_ALL;
    DWORD msg=-1;
    try
      {
      msg=NetShareAdd(ServerName,502,(char *)&sh,Param_Err);   //  0表示成功,53表示不成功
      }
    catch(...)
      {
      MessageBox(Handle,"共享失败!","错误",MB_OK|MB_ICONWARNING);
      return;
      }
    if(msg==0)
      MessageBox(Handle,"共享成功!","成功",MB_OK|MB_ICONINFORMATION);
    else
      MessageBox(Handle,"共享失败!","错误",MB_OK|MB_ICONWARNING);
    在win98下输出到不存在的输出NETAPI32.DLL:NetShareAdd.
      

  2.   

    楼上很详细了,
    SHARE_INFO_502 :Windows NT/2000/XP
      

  3.   

    代码似乎对只读ACCESS_READ没有反应,一律设成全部权限。
      

  4.   

    WideString是什么?编译通不过。
      

  5.   

    mfc42d() 改写你的代码到MFC后,共享失败,msg=123