Problem mit String als Rückgabetyp

Anfängerfragen zum Programmieren mit PureBasic.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: Problem mit String als Rückgabetyp

Beitrag von DarkDragon »

Hallo,

Ich kanns mir ja leisten mich mal wieder auf sowas einzulassen - es macht auch hin und wieder Spaß. :lol:

Hmm "Mok" .. ich glaube der hat sich 2005, 2006 oder so angemeldet und hatte damals ein Avatar mit einem komischen Smiley, nicht wahr? Seitdem ich alle Avatare abgestellt habe sehe ich die Leute etwas neutraler - nur so als Tipp am Rande.
TomS hat geschrieben:Erstens vergeht kaum ein Tag, wo du nicht eine neue Frage gepostet hast,
was manche hier zu dem Schluss bringt, dass du's mit Logik (die man ohne Zweifel zum Proggen braucht) nicht so hast,
bzw generell eher wenig selber nachdenkst, weil's bequemer ist andere denken zu lassen.
Ich habs auch nicht so mit Logik, wenn ich ehrlich bin. Ich kann mich nur mit dem über längere Zeit beschäftigen was für mich handfest ist und nicht mit sowas wie "Verschlüsselungstechniken" wo niemand jemals auch nur irgendwas davon sieht, auch wenns massig Kohle dafür gibt.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Problem mit String als Rückgabetyp

Beitrag von ts-soft »

mk-soft hat geschrieben:Hier noch was sinnvolles zur Frage.
Dann hast Du die Frage aber mißverstanden!

Es geht um die direkte Rückgabe von Strings durch DLL. Dein Beispiel gibt auch nur einen Pointer zurück!

Eine DLL kann ein Integer auf den Stack legen oder auch ein paar andere einfache Typen über entsprechende Register/Stacks zurückliefern,
aber keine benutzerdefinierten Typen und keine Strings, für Strings gibts nunmal kein Register oder Stack :mrgreen: , diese müssen als
Pointer zurückgegeben werden.

Es geht also in PB immer über PeekS(). Das automatisieren dieses PeekS() bei Prototype.s ist auch nicht möglich, da es Unicode und Ansi-
Strings gibt, ausserdem ist nicht jeder String, der von einer DLL kommt unbedingt nullterminiert.

Das war die hoffentlich verständliche Erklärung zur Frage.

Gruß

Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Re: Problem mit String als Rückgabetyp

Beitrag von PMV »

ausserdem ist nicht jeder String, der von einer DLL kommt unbedingt nullterminiert.
In dem Fall ist es mit einem einfachen PeekS(*Pointer) auch nicht getan.
(nur der Vollständigkeit halber <) )

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: Problem mit String als Rückgabetyp

Beitrag von bobobo »

so .. und nun mach ich mal zu .. kümmert euch mal um Dinger, die gehen und nicht
um Dinger die nicht gehen oder bereits gegangen sind ..
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Gesperrt