PChar und string
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. :(
|
Re: PChar und string
Mit .net kenn ich mich auch net aus. aber versuchs mal mit @string[1] (nix anderes macht pchar())
|
Re: PChar und string
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. |
Re: PChar und string
Mach mal einen Punkt hinter deinen String, du wirst überrascht sein was es alles gibt!
|
Re: PChar und string
Zitat:
Zitat:
|
Re: PChar und string
Zitat:
|
Re: PChar und string
Zitat:
Dann musst du noch den Compilerschalter "Unsafecode Compileren" anmachen! |
Re: PChar und string
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! |
Re: PChar und string
Zitat:
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. |
Re: PChar und string
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! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:54 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