Announcement

Collapse
No announcement yet.

String => PWChar

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • String => PWChar

    ich will einen String in PWChar konvertieren , und habs mit StringToWideChar versucht (Delphi 7) klappt aber nich :

    var
    test : PWChar;
    welchesbild : String;
    begin
    StringToWideChar(welchesbild,test,x);

    in der hilfe steht Welchesbild muss mindestens x-1 lang sein .. hat trotzedem nich geklappt (auch nich als der String genaus so lang , kürzer oder länger als x war ), es kommt immer wieder die Fehlermeldung :

    "Exeption der Klasse EAccessViolation aufgetreten ,Zugriffverletzung bei adresse ..."

    muss man vieleicht vorher was Createn oder setzen oder so ??

  • #2
    Das sollte genuegen:<br>
    <pre>
    var
    Wide: WideString;
    Normal: string;
    begin
    Normal := 'irgendwas';
    Wide := Normal; // das wandelt den String um
    WindowsFunktion(PWideChar(Wide));
    </pre>
    Der Beschreibung nach liefert aber Windows Daten in einem Puffer ab.<br>
    <pre>
    var
    WideBuffer: array [0..255] of WideChar;
    Normal : string;
    begin
    WideBuffer[0] := 0;
    WindowsFunktion(@WideBuffer[0], SizeOf(WideBuffer));
    Normal := WideBuffer;
    </pre&gt

    Comment


    • #3
      mein Delphi (Delphi 7) kennt "WindowsFunktion" nicht (auch nichst in der Hilfe

      Comment


      • #4
        Das sollte auch nur ein Beispiel fuer eine typische Windows API Funktion sein, denn du sagst ja nicht welche Funktion du aufrufen willst

        Comment


        • #5
          ????????? (ab noch nicht so viel ahnung von Delphi

          Comment


          • #6
            Ah, jetzt verstehe ich. Der obige Code kracht. Ist ja auch kein Wunder: Er ist komplett falsch.<br>
            <pre>
            var
            Test: PWideChar;
            welchesbild: string;
            WidePuffer: array [0..1023] of WideChar;
            begin
            Test := @WidePuffer[0];
            welchesbild := 'irgendein text';
            StringToWideChar(welchesbild, test, SizeOf(WidePuffer));
            </pre>
            Test ist ein Zeiger der auf entsprechend alloziierten Speicher zeigen muss. Bei dir zeigt er irgendwohin

            Comment


            • #7
              Thx für die hilfe (ich habs zwar noch nich ausprobieren können aber ich hoff jetzt klappts endlich)

              PS : ich hab oben gefragt was mit Windowsfunction gemeint is ...
              eben bin ich selbst drauf gekommen *mir peinlichsei

              Comment

              Working...
              X