Partage
  • Partager sur Facebook
  • Partager sur Twitter

c++ lptstr char wtchar... perdu

comment assinger qqchose a un lptstr

Sujet résolu
    6 juin 2008 à 15:46:41

    bonjour a tous!
    je suis nouveau ici et de plus un zéro de la prog je suis en 3e année en info et mon projet de fin d'année porte sur un nouveau plugin pour "pgina" ne connaissant pas le c/c++ j'ai débutè mon stage sur votre site afin d'aquerir les bases du c/c++ se qui a été assez simple garce a vos super tuto merci matheo21! ;)
    mais voila je me trouve tous de même face a un os
    comment assigné un valeur a un lptstr? pour vous donnée plus d'info je vous donne le sample du plugin :


    #include "stdafx.h"
    #include "SamplePlugin.h"
    #include "ConfigDialog.h"

    #ifdef _DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE[] = __FILE__;
    #endif



    SAMPLEPLUGIN_API BOOL UserLogin(LPTSTR Username, LPTSTR Password, pGinaInfo *settingsInfo) {

    if(!_tcscmp(Password,TEXT("mypassword"))) {
    settingsInfo->isAdmin = true;
    settingsInfo->userDescription = _tcsdup(TEXT("Sample Plugin User"));
    settingsInfo->userGroups = _tcsdup(TEXT("Sample"));
    return true;
    }

    settingsInfo->errorString = _tcsdup(TEXT("Password is incorrect"));
    return false;
    }
    voici la partis du code qui est importante!
    dans ce code il faudrait que je puisse changer la valeur de "lptstr Username" afin de lui donnée comme valeur le login crée a la demande par un fonction de mon cru!
    je pense que cette partis du .h peu aussi vous aidé:

    typedef struct pGinaInfo {
    LPTSTR pathMSGina;
    LPTSTR pathPlugin;
    LPTSTR pathProfile;
    LPTSTR mapPaths;
    LPTSTR Username;
    LPTSTR Password;} pGinaInfo ;

    ps:j'ai couper la liste pour gagner un peu de place! o_O
    bon alors j'espère ne rien avoir oublier! je suis a votre disposition!pour toute question et complément!si vous le voulez je peu vous donné aussi tous se que j'ai tester qui ne marche pas mais je pense que se serai polluer le forum vue que sa ne marche pas!!
    ;);) je vous remercies d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      6 juin 2008 à 15:55:08

      Vu sur la MSDN:
      typedef char* PSTR, *LPSTR;
      


      Alors, assigne lui une valeur comme tu le ferais avec un char *.
      • Partager sur Facebook
      • Partager sur Twitter
        6 juin 2008 à 17:07:59

        en faite je n'arrive pas trop a comprendre dans le cas de:
        settingsInfo->userGroups = _tcsdup(TEXT("Sample"));
        usergroups qui fais aussi partis du typedef(je l'ai coupé), tous fonctionne correctement!
        mais pour username sa ne fonctionne pas!
        comme je le dis je fais du c depuis 2 mois et ta réponse m'a l'aire parfaitement indiqué mais il me faudrait quelque indications supplémentaire je ne cerne pas exactement comment je dois formuler ma commande. :-°
        • Partager sur Facebook
        • Partager sur Twitter
          10 juin 2008 à 11:34:58

          Ebien en faite merci beaucoup pour ta reponse qui m'a ete trés utile, mais je me retrouve a nouveau face a un pb du méme type. en effet:
          pour assigné le string a se fameux lptstr j'utilise une petit fonction simpa:

          static LPTSTR convert_char_to_wchar(PCHAR cstr)
          {
          LPTSTR wcstr;
          INT wcstr_size;

          wcstr_size = lstrlenA(cstr);
          wcstr = (LPTSTR)SysAllocStringLen(NULL,wcstr_size);
          MultiByteToWideChar(CP_ACP,0,cstr,wcstr_size,wcstr,wcstr_size);
          return wcstr;
          }
          mais la ou sa se complique c'est:
          ma variable de depart est celle si:

          string name = ghost + id;

          ou id est un int stoker dans un fichier txt recupérer et placer dans une string et ghost une chaine type string avec pour valeur "ghost".
          tous cela fonctionne corréctement aussi, du moins quand je fais:

          string com="net user "+ name +" "+ pass +" "+"/add";
          system(com.c_srt());

          pas de probléme l'utilisateur est crée corréctement avec le bon nom d'utilisateur.
          mais lors que je fais:

          char* lol =(char*)name.c_str();
          settingsInfo->Username = convert_char_to_wchar(lol);

          tous compile corréctement le noms est bien envoyer au programme tous se passe bien sauf que la partie "id" est automatiquement mise a zero!
          je me retrouve indubitablement connecter avec un username = "ghost0"
          voila merci d'avance pour votre aide!
          • Partager sur Facebook
          • Partager sur Twitter

          c++ lptstr char wtchar... perdu

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown