AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

PChar und string

Ein Thema von tomaten · begonnen am 21. Sep 2005 · letzter Beitrag vom 27. Sep 2005
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von tomaten
tomaten

Registriert seit: 19. Jun 2005
118 Beiträge
 
Delphi 2005 Architect
 
#1

PChar und string

  Alt 21. Sep 2005, 11:45
Hallo, warum funtioniert unter Delphi.NET PChar(string) nicht mehr? Was muss ich tun? Ich brauche das, weil ich eine alte Win32 DLL verwenden muss die als Parameter PChar benötigt.
  Mit Zitat antworten Zitat
KLS

Registriert seit: 20. Jun 2004
Ort: Berlin
89 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: PChar und string

  Alt 21. Sep 2005, 12:17
Mit .net kenn ich mich auch net aus. aber versuchs mal mit @string[1] (nix anderes macht pchar())
Thomas H.
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

Re: PChar und string

  Alt 21. Sep 2005, 12:47
PChar ist ein Zeiger und unter .NET nutzt man keine Zeiger mehr (außer in unsafe Code und der ist recht selten).

Für was brauchst du denn den PChar? Das lässt sich sicherlich anders regeln.
  Mit Zitat antworten Zitat
Benutzerbild von Speedmaster
Speedmaster

Registriert seit: 4. Mär 2005
Ort: Karlsruhe
535 Beiträge
 
Delphi 2005 Personal
 
#4

Re: PChar und string

  Alt 21. Sep 2005, 13:08
Mach mal einen Punkt hinter deinen String, du wirst überrascht sein was es alles gibt!
Felix K.
Zitat:
Siehst du diesen Park da unten?
Jeden Tag lernen sich leute kennen und verlassen einander, und du hast dein ganzes Leben Zeit darin zu gehen!
  Mit Zitat antworten Zitat
Benutzerbild von tomaten
tomaten

Registriert seit: 19. Jun 2005
118 Beiträge
 
Delphi 2005 Architect
 
#5

Re: PChar und string

  Alt 21. Sep 2005, 13:30
Zitat von Speedmaster:
Mach mal einen Punkt hinter deinen String, du wirst überrascht sein was es alles gibt!
Das kenn ich, programmiere ja jetzt viel in C#, aber das geht ja überhaupt nicht mit dieser DLL. Deshalb benutz ich hier unsafe Delphi-Code, da geht es unter Win32 schon.

Zitat von jbg:
PChar ist ein Zeiger und unter .NET nutzt man keine Zeiger mehr (außer in unsafe Code und der ist recht selten).

Für was brauchst du denn den PChar? Das lässt sich sicherlich anders regeln.
In dem Fall muss ich aber unsafe benutzen, um von .NET auf die Win32 DLL zu kommen!
  Mit Zitat antworten Zitat
Benutzerbild von tomaten
tomaten

Registriert seit: 19. Jun 2005
118 Beiträge
 
Delphi 2005 Architect
 
#6

Re: PChar und string

  Alt 21. Sep 2005, 13:39
Zitat von KLS:
Mit .net kenn ich mich auch net aus. aber versuchs mal mit @string[1] (nix anderes macht pchar())
"unsafe code '@ operator'" obwohl die Function als "unsafe" gekennzeichnet ist! Delphi.NET treibt einen schon ein bisschen in den Wahnsinn!
  Mit Zitat antworten Zitat
Benutzerbild von Speedmaster
Speedmaster

Registriert seit: 4. Mär 2005
Ort: Karlsruhe
535 Beiträge
 
Delphi 2005 Personal
 
#7

Re: PChar und string

  Alt 21. Sep 2005, 13:45
Zitat von tomaten:
Zitat von KLS:
Mit .net kenn ich mich auch net aus. aber versuchs mal mit @string[1] (nix anderes macht pchar())
"unsafe code '@ operator'" obwohl die Function als "unsafe" gekennzeichnet ist! Delphi.NET treibt einen schon ein bisschen in den Wahnsinn!
function Blabla:Blubb; unsafe;

Dann musst du noch den Compilerschalter "Unsafecode Compileren" anmachen!
Felix K.
Zitat:
Siehst du diesen Park da unten?
Jeden Tag lernen sich leute kennen und verlassen einander, und du hast dein ganzes Leben Zeit darin zu gehen!
  Mit Zitat antworten Zitat
Benutzerbild von tomaten
tomaten

Registriert seit: 19. Jun 2005
118 Beiträge
 
Delphi 2005 Architect
 
#8

Re: PChar und string

  Alt 21. Sep 2005, 13:53
Ja hab ich doch, ist ja auch nur ne Warnung. Mit Function(@'dkshskhf'[1]) geht es auch, aber mit Function(@stringvar[1]) bekommen ich

"[Error] your.pas(97): E2354 String element cannot be passed to var parameter"

obwohl Function(varname: PChar) nix mit var parameter definiert hat! Das treibt mich echt in den Wahnsinn!
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#9

Re: PChar und string

  Alt 21. Sep 2005, 14:24
Zitat von tomaten:
Das treibt mich echt in den Wahnsinn!
Und was mich zum Wahnsinn treibt ist, dass jemand .NET einsetzen will, aber immernoch auf Zeigern behart. Wer .NET verwendet, sollte keine Zeiger mehr nutzen. Ansonsten kann er gleich bei der nativen Programmierung bleiben. .NET ist dafür da, dass man ohne Zeiger programmieren kann und nicht mit.

Ich bin mir sicher, dass man den Code auch anders, ohne Zeiger implementieren kann. Selbst die Borland.Vcl.Windows.pas nutzt keine PChars mehr sonden nur noch string, die vom Marshaller dann automatisch beim Aufruf richtig konvertiert werden.

Wenn du Zeiger unbedingt in .NET haben willst, dann kompiliere die Unit in eine DLL und binde sie über P/Invoke in .NET ein.
  Mit Zitat antworten Zitat
Benutzerbild von tomaten
tomaten

Registriert seit: 19. Jun 2005
118 Beiträge
 
Delphi 2005 Architect
 
#10

Re: PChar und string

  Alt 21. Sep 2005, 15:29
Was mich am meisten nervt ist, wenn Leute labern, aber nicht lesen, warum das so ist! Nochmal für Dich:

ICH MUSS EIN WIN32.DLL EINBINDEN FÜR DIE ES KEINE ALTERNATIVE GIBT, WEDER IN WIN32, NOCH IN .NET! GAR KEINE!

Aber ich muss mich auch nicht erklären, es reicht doch, wenn ich sage, dass ich ein Win32.dll einbinden muss, die nunmal als Parameter PChar erwartet (VB-DLL ) ! Oder erzähl Du mir doch, wie ich ASP.NET als Win32 baue, oder einen Win32 Modul in DotNetNuke bekomme! Es gibt für alles einen Grund, akzeptier es einfach!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz