Einen share erstellen in C++ mit MSDEStudio6.0



  • Einen share erstellen in C++ mit MSDEStudio6.0

    Weisss jemand wie man im C++ mit dem Devstudio 6.0 eine Share eine Directorys erstellt?
    Es muss eine share auf Windows 2000, 2003 und XP erstellen könne wercher fuer alle offen komplet offen ist

    Ich versuche es mit dere folgenden Funktion

    bool AFile::createShare( const AString& dir ,const AString& shareName){
    SHARE_INFO_2 p;
    p.shi2_netname = TEXT((char*)(LPCTSTR)shareName);
    p.shi2_type = STYPE_DISKTREE; // disk drive
    p.shi2_remark = TEXT("TESTSHARE to test NetShareAdd");
    p.shi2_permissions = ACCESS_ALL;
    p.shi2_max_uses = 4;
    p.shi2_current_uses = 0;
    p.shi2_path = TEXT((char*)(LPCTSTR)dir);
    p.shi2_passwd = NULL; // no password
    DWORD parm_err = 0;
    if(NetShareAdd((char*)(LPCTSTR)AInfo::getCurrentNode(), 2, (LPBYTE) &p, &parm_err)==0) {
    printf("Share created.
    ");
    return true;
    } else {
    AMsg::warnLogBox(AInfo::getCurrentLastErrorText());
    return false;
    }

    wobei AString eine ableitung von CString
    AMsg::warnLogBox ein box ausgibt
    AInfo::getCurrentLastErrorText den Textx des letzten Fehler und hohlt
    AInfo::getCurrentNode() den aktuellen Rechnerenamhem hohlt / Auf diesem soll der Link auch gemacht werden )
    folgende Fehlermeldung wird herausgelesen
    rc=0x3E5 Uberlappender E/A-Vorgang wird
    verarbeitet



  • Ganz falsches Forum 😃 😉 🙂



  • Thomas: Du hast das ja schonmal im MFC Forum gepostet und jetzt auch noch hier. Aber es gehört nach WinAPI. 😉



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Aus irgendeinem Grund funktioniert das TEXT-Makro in diesem Beispiel nicht (Bei mir auch nicht, wenn ich den originalen Code aus dem MSDN-Beispiel nehme). Ich habe dann immer einen Konvertierungsfehler erhalten(1113-Für das Unicode-Zeichen ist kein zugeordnetes Zeichen in der Mehrbytecodepage vorhanden.) Ich habe es dann mit einer eigenen Funktion umgewandelt und hatte damit keine Probleme

    PWCHAR WString( const char* str ) {
        if( str == NULL ) {
            return NULL;
        }
    
        int iBufSize = MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, str, -1, NULL, 0 );
        WCHAR* wstr= new WCHAR[iBufSize+1];
        MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, str, -1, wstr, iBufSize );
    
        return (wstr);
    }
    
    bool AFile::createShare( const AString& dir ,const AString& shareName){ 
        SHARE_INFO_2 p; 
    
        p.shi2_netname = (LPSTR)WString(shareName); 
        p.shi2_type = STYPE_DISKTREE; // disk drive 
        p.shi2_remark = (LPSTR)WString("TESTSHARE to test NetShareAdd"); 
        p.shi2_permissions = ACCESS_ALL; 
        p.shi2_max_uses = 4; 
        p.shi2_current_uses = 0; 
        p.shi2_path = (LPSTR)WString(dir); 
        p.shi2_passwd = NULL; // no password 
    
        DWORD parm_err = 0; 
    
        if(NetShareAdd((LPSTR)WString(AInfo::getCurrentNode()), 2, (LPBYTE) &p, &parm_err)==0) { 
            printf("Share created."); 
            return true; 
        } else { 
            AMsg::warnLogBox(AInfo::getCurrentLastErrorText()); 
            return false; 
        } 
    }
    

Anmelden zum Antworten