IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web & réseau Delphi Discussion :

Partage de fichier sous Win9x : 87-Paramètre incorrect


Sujet :

Web & réseau Delphi

  1. #1
    Membre expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Points : 3 256
    Points
    3 256
    Par défaut Partage de fichier sous Win9x : 87-Paramètre incorrect
    Bonjour,

    Désolé, j'ai encore des problèmes de partage...

    Dans l'utilisation de NetShrareAdd et NetShareDell, tout fonctionne bien sous WinNT & Co ... mais avec un Win9x tout se complique.


    Voici les fonctions que j'utilise à cet effet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      DLLShareFolder9x : function (const pszServer: PChar;
        sLevel: SmallInt;
        pbBuffer: Pointer;
        cbBuffer: Word): DWORD; stdcall;
      DLLUnShareFolder9x : function (const pszServer: PChar;
        const pszNetName: PChar;
        usReserved: Word): DWORD; stdcall;
    Et je les utilises comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        //  Share: PSHARE_INFO_2;
     
        // dw : DWORD;
        Rep := DLLShareFolder9x(nil,2,Share,dw);
    ...
    ...
        // w : WORD;
        Rep := DLLUnShareFolder9x(nil,@nomPartage,w);

    J'ai récupérer LanManager proposer par JEDI mais rien a faire je ne comprends pas trop le fonctionnement.

    D'autre part, j'ai récupérer un bout de code C# qui traite cela mais pareil... j'ai presque rien compris.

    Actuellement, sous Win9x, il m'affiche ce message lorsque je tente une opération de partage : '87 - Paramètre incorrect'.

    La grande question est pourquoi ?


    D'autre part l'étude des bouts de code JEDI et C# ainsi que MSDN m'ont ammené à me poser plusieurs questions :

    _ Le Type Shae_Info_2 peut-il fonctionner avec Win9x ou pas ?(les divers exemples que j'ai étudié et MSDN se contredisent).

    _ Quelle est la véritable utilité de Parm_Err et autres si on peut récupérer le code d'erreur en retour de la fonction.

    Les Api's me rendent complètement


    Merci,

    [Edit]
    Je remets les liens que j'ai trouvé, cela permettra sans doute une meilleure compréhension :
    MSDN NetShareAdd : http://msdn.microsoft.com/library/de...etshareadd.asp
    JEDI LanManager.zip : ftp://delphi-jedi.org/api/LanManager.zip
    CV :
    - LinkedIn
    - Viadeo

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut Re: Partage de fichier sous Win9x : 87-Paramètre incorrect
    Salut,
    Citation Envoyé par yobenzen
    Désolé, j'ai encore des problèmes de partage...


    Citation Envoyé par yobenzen
    _ Le Type Shae_Info_2 peut-il fonctionner avec Win9x ou pas ?(les divers exemples que j'ai étudié et MSDN se contredisent).
    Non, il faut utiliser share_info_50 sous W9x dixit le SDK.

    Citation Envoyé par yobenzen
    _ Quelle est la véritable utilité de Parm_Err et autres si on peut récupérer le code d'erreur en retour de la fonction.
    Ce paramétre contient le numéro de la premiére ressources en erreur re-dixit le SDK, sous NT uniquement .

  3. #3
    Membre expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Points : 3 256
    Points
    3 256
    Par défaut
    merci,

    Hélas cela fais plus de deux heures que je tente de le faire marcher, mais toujours rien. Sous Win98 il me retourne l'erreur 2123 (ce qui d'après MSDN serait a cause d'un buffer trop petit)

    Le problème c'est que je suis ancien développeur Java et je n'ai commencé le Delphi qu'au début de l'année.
    Donc les problèmes de pointer c'est relativement nouveau alors en plus avec utilisation des DLL, pour moi cela deviens mission impossible...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
      new(share);
      StrPCopy(share^.shi50_netname, NomPartage);
     
      Share^.shi50_type := STYPE_DISKTREE;
     
      Share^.shi50_flags := SHI50F_PERSIST or SHI50F_FULL;
     
      StrPCopy(@share^.shi50_path, SharePath);
      StrPCopy(@share^.shi50_remark, description);
     
    [Edit]// TmpShort := sizeof(share)[/Edit]
     
      rep := DLLShareFolder9x(nil, 50, share,TmpShort);
     
      if (rep = 0 )then
       Result := True
      else begin
        if bShowMessage then
          messagedlg(inttostr(rep) + ' - ' +SysErrorMessage(rep),mtWarning, [mbOK], 0);
        Result := False;
      end;
     
      Dispatch(Share);
    J'ai pour seul message 2123 (qui semble etre un buffer trop petit)

    de meme pour la suppression du partage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    var
      w : Word;
      psNomPart : PAnsiChar;
    begin
     
      StrPCopy(@psNomPart, NomPartage);
      Rep := DLLUnShareFolder9x(nil,psNomPart,w);
     
      if (rep = 0 )then
        Result := True
      else begin
        if bShowMessage then
          messagedlg(inttostr(rep) + ' - ' +SysErrorMessage(rep),mtWarning, [mbOK], 0);
        Result := False;
      end;
    La toujours mon 87-paramètre incorrect mais en plus une violation d'accès memoire, je ne vois pas mon erreur.

    (et je dois faire mes testes en compilé car le Win98 sur le quel je teste ne peux pas recevoir Delphi donc pas de debugage actif)

    merci
    CV :
    - LinkedIn
    - Viadeo

  4. #4
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Bon, j'ai trouvé ce code :
    http://www.delphikingdom.com/asp/viewitem.asp?UrlItem=/treasury/netshare9x.htm

    Allez un dernier effort

  5. #5
    Membre expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Points : 3 256
    Points
    3 256
    Par défaut
    Citation Envoyé par Laurent Dardenne
    Allez un dernier effort

    Ne remarques tu pas une certaine similitude entre le lien que tu m'as fourni et les bouts de codes cités précédament?
    (voici ou j'ai trouvé du code : http://www.elrinconcito.com/delphi/trucos/IApi20.htm)

    Cependant, désirant des fonctions dynamiques, je tente de remplacer les chaines de caractères par des variables.
    Mais la, violation d'adresse mémoire... c'est pourquoi j'ai tenté de travaillé avec des pointer comme pour NT.

    Donc après une nuit de travail, voici l'état d'avancement de ma recherche :
    Je peux créer un partage avec des variables dynamiques cependant je ne peux plus l'enlever.
    L'application me renvoie l'erreur 2392 soit La ressource partagée ne peut etre trouvée.
    Depuis Win98, impossible aussi de retirer le partage ... il n'apparait pas sur le répertoire cependant il apparait lors d'un \\127.0.0.1
    Est-ce que cela est dû à une mauvaise options ?

    Merci de votre aide,
    et désolé de poser des questions ...
    CV :
    - LinkedIn
    - Viadeo

  6. #6
    Membre expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Points : 3 256
    Points
    3 256
    Par défaut
    Voila tout fonction ... enfin

    Donc voici pourquoi rien ne fonctionnait ...
    Il semble y avoir un bug au niveau de la reconnaissance des chaines de caractères du nom de partage et du chemin.
    Pour éviter toute erreur sous Win 9x, surtout faire attention de choisir des chaines de caractères en MAJUSCULES pour le nom et le chemin, sinon windows éprouve quelques difficultés à reconnaitre le partage.

    merci,
    A bientot,
    Ben
    CV :
    - LinkedIn
    - Viadeo

  7. #7
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par yobenzen
    Ne remarques tu pas une certaine similitude entre le lien que tu m'as fourni et les bouts de codes cités précédament?
    Oui, j'avais noté en comparant ton code et l'exemple cité.
    Les différences que j'avais noté était l'utilisation de variable statique et du nom de share en majuscule.
    Mais de là à mettre en cause l'utilisation des majuscules !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Partage de fichier sous Windows Serveur 2008 R2
    Par Sergeras dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 13/08/2012, 00h03
  2. Partage de Fichiers sous ubuntu
    Par s-ehtp dans le forum Réseau
    Réponses: 0
    Dernier message: 18/10/2008, 17h07
  3. Partager des fichiers entre sous-domaine
    Par mikyfpc dans le forum Serveurs (Apache, IIS,...)
    Réponses: 1
    Dernier message: 10/03/2008, 22h30
  4. Partage de fichiers sous Windows
    Par Brindavoine dans le forum Développement
    Réponses: 7
    Dernier message: 06/06/2007, 14h28
  5. Partage de fichier windows avec des sous réseaux différents
    Par Annaced dans le forum Administration
    Réponses: 4
    Dernier message: 07/06/2006, 21h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo