Byte[] to system::string ( string^)



  • Hallo Leute

    Ich habe ein Typen convertierung problem und fange an zu verzweifeln, ich bin mir aber sicher dass ein von euch eine seht einfahe lösung hat...

    Hintergrund info:

    Ich habe eine funktion in einen externen DLL die ich anspreche und möchte version info holen

    Die funktion hat einen variabel der foldende veise als byte array deklariert ist

    byte[] version;

    im array habe ich 10 indexes und drin eine numer.

    [0] -> "2"
    [1] -> "."
    [2] -> "0"
    [3] -> "."
    [4] -> "1"

    Das ganze möchte ich als Sting^ haben so dass es so aussieht "2.0.1"

    Die funkt. selber heist get_pura_sw_version() und ervartet ein teimout parameter

    ich rufe sie vie folgt

    Pura_SWInfo = MultiPSA.get_pura_sw_version(1000);

    this->PuraSWinfo_str = Convert::ToString(Pura_SWInfo->sw_version[0]);

    Ihr weist ja was ich da bekomme oder?
    Statt ein "2" bekomme ich "50"

    HILFE HILFE 😕

    Ich verzweifle langsam hab alle mögliche convertierungen und Casts verucht aber komme nicht auf die richtige art und weise...

    Grüsse
    Krystian


  • Mod

    Convert::ToString, wo immer das überhaupt her ist, wird sicherlich einen Zahlenwert in eine Darstellung als Zeichenkette überführen. Also '2' = 50 wird zu "50".

    Du denkst viel zu kompliziert. Einfach:

    string version_string(version, version+5);
    

    Oder falls das Array nullterminiert ist (was mich wundern würde, wenn dem nicht so wäre)

    string version_string(version);
    


  • Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ (auch C++0x und C++11) in das Forum C++/CLI mit .NET verschoben.

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

    Dieses Posting wurde automatisch erzeugt.



  • Er hat System::String gemeint, nicht std::string. Eine Option, die mir spontan in den Sinn kommt (ich kann es gerade nicht testen) wäre: System::Text::Encoding::ASCII->GetString .



  • Hallo Leute,

    Danke für eure hilfe! 👍 🙂

    Habe es so gelöst:

    Pura_SWInfo = MultiPSA.get_pura_sw_version(1000);
    
    Encoding^ ascii = Encoding::ASCII;
    
    this->PuraSWinfo_str = ascii->GetString(Pura_SWInfo->sw_version);
    

    Nochmals Vielen Dank!



  • This one goes on me 🙂

    , . '_ .
    '(_0o),(__)o().
    ,o(__),
    )o()O,(__)o
    o(
    ,-o(_ )(),(()oO)
    .O(
    )o,__).(_ )o()Oo)
    .----| | | | | |)0
    / .--| | | | | |,
    )
    | / | | | | | |o()
    | | | | | | | |
    /) | | | | | | | |O_) | | | | | | | | | \ | | | | | | \ '--| | | | | | '----| | | | | | | | | | | | \ \ \ / / /"""""""""""""""""`



  • wollte ein ASCII beer schicken es wurde aber alles comprimiert 😞



  • kfiliks schrieb:

    This one goes on me 🙂

    You are heavy on wire 😉

    _, . '__ . 
              '_(_0o),(__)o().
            ,o(__),_)o(_)O,(__)o
          o(_,-o(_ )(),(__(_)oO)_
          .O(__)o,__).(_ )o(_)Oo_)
      .----|   |   |   |   |   |_)0
     /  .--|   |   |   |   |   |,_)
    |  /   |   |   |   |   |   |o(_)
    |  |   |   |   |   |   |   |_/`)
    |  |   |   |   |   |   |   |O_) 
    |  |   |   |   |   |   |   |
    |  \   |   |   |   |   |   |
     \  '--|   |   |   |   |   |
      '----|   |   |   |   |   |
           |   |   |   |   |   |
           \   \   \   /   /   /
            `"""""""""""""""""`
    

    So.


Log in to reply