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 istIch 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; } }