Problem mit String als Rückgabetyp

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Problem mit String als Rückgabetyp

Beitrag von Mok »

Hallo!
Ich will einen String aus einer ProcedureDLL returnen, aber es funktioniert nicht... mehr Infos kann ich leider nicht geben.

Code: Alles auswählen

;DLL
ProcedureDLL.s INF_GetComputerName()
  Global Name.s = Space(1024)
  Global MaxLen= 1024
  GetComputerName_(@Name,@MaxLen)
  ProcedureReturn Name
EndProcedure

Code: Alles auswählen

;Programm
If OpenLibrary(0,"inf.dll")
  Prototype.s pGetComputerName()
  Global GetComputerName.pGetComputerName = GetFunction(0,"INF_GetComputerName")
  
  MessageRequester("Computername",GetComputerName())
Else
  Debug "Fehler!"
EndIf
Mir ist bewusst, dass man auch die String-Adresse zurückgeben kann und dann mit PeekS() aus dem Speicher auslesen kann, aber gerade für sowas sind Prototypes ja da... oder?

Gruß, Mok.
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Problem mit String als Rückgabetyp

Beitrag von STARGÅTE »

Mir ist bewusst, dass man auch die String-Adresse zurückgeben kann und dann mit PeekS() aus dem Speicher auslesen kann
Nein MUSS!

Eine DLL gibt nie einen string zurück (bzw kann es nicht^^).

Prototypes ersetzen "nur" das unhandliche CallFunctionFast() ...

String können da auch nur in eigenen prozeduren zurückgegeben werden.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Re: Problem mit String als Rückgabetyp

Beitrag von Mok »

STARGÅTE hat geschrieben:String können da auch nur in eigenen prozeduren zurückgegeben werden.
Och menno...
Ist das in keiner Sprache möglich, oder nur in PB nicht? (zu faul zum Probieren)
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
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 »

Mok hat geschrieben:Ist das in keiner Sprache möglich, oder nur in PB nicht? (zu faul zum Probieren)
Hast Du schon mal eine API gesehen, die direkt einen String zurückgibt? Selbst als Parameter geht es nicht, es scheint
nur oftmals so :mrgreen:

Wenn Du eine Sprache finden solltest, wo dies geht, denke daran, das gilt nur für diese Sprache, deren DLLs werden
in anderen Sprachen auch keine Strings zurückgeben.

Es gibt keinen Standard für die Rückgabe von Strings aus DLLs. Es gibt nichtmal einen Standard für das Stringformat.
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
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Re: Problem mit String als Rückgabetyp

Beitrag von edel »

was genau hast du an "es geht nicht" nicht verstanden? Auch wenn du noch 10 weitere threads damit auf machst, es bleibt dabei.
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Re: Problem mit String als Rückgabetyp

Beitrag von Fluid Byte »

Sorry aber ihr habt beide keine Ahnung. Es ist durchaus möglich Strings zurückzugeben mit dieser Sprache.
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Re: Problem mit String als Rückgabetyp

Beitrag von Mok »

@Fluid: Jetzt pass mal auf. Das hier ist ein Forum und es ist zum Fragen da. Wenn du nichts beantowrten willst/kannst schreib auch nichts! Du bist richtig bemitleidenswert! Einerseits schreibst du unter super_castles Threads immer Sachen à la "Don't feed the troll", aber selber bist du auch nicht recht viel besser. Wahrscheinlich weißt du selber eh garnichts - ich habe noch nie eine Antwort von dir gesehen, die wirklich ein Problem löst, sondern nur Antworten, wo halbwitzige, sarkastische Verarschungen drin stecken. Dein ganzes Gelaber kannst du dir rektal einführen!
Ich werde jetzt ebenfalls das deutsche Forum verlassen und nur noch im englischen aktiv sein - das beschissene Herumgetrolle und die ewige Verarschen gewinnen hier schön langsam Oberhand.
Also, 'schüß, Forum und danke für eine arme Witzfigur.
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Benutzeravatar
Rings
Beiträge: 977
Registriert: 29.08.2004 08:48

Re: Problem mit String als Rückgabetyp

Beitrag von Rings »

senf!

:bounce:
Rings hat geschrieben:ziert sich nich beim zitieren
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Re: Problem mit String als Rückgabetyp

Beitrag von TomS »

Och menno.
Das Englische is voll OK. Irgendwer hat mal angefangen rumzumosern, dass er jetzt nur noch ins Englische schaut nud jetzt machen's alle.

@Mok: Wenn du Ruhe vor Fluid Byte haben willst, brauchst du nicht ins englische Board kommen.
Und du musst zugeben, dass du dich manchmal echt ein bißchen dämlich anstellst.
Ja, alle hier müssen ab und zu was nachfragen, auch wenn's z.T. triviale Fragen sind,
die sich in einem Satz beantworten lassen und mancheiner verschreibt sich auch mal
z.B. dass ein Byte aus 4 Bits besteht, oder dass die Erde eine Scheibe ist...

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.

Zweitens seh ich eigentlich keinen einzigen Thread, in dem dir nicht geholfen wurde.
Also begründet sich dein Wunsch das Forum zu verlassen nur auf Anspielungen auf's Radfahren?

Entweder du ignorierst das und stehst drüber,
oder du verstehst als Wink mit dem Zaunpfahl und überlegst mal, warum dir jemand vorschlägt Proggen mit Radfahren zu ersetzen.
Oder du rennst heulend weg...
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Re: Problem mit String als Rückgabetyp

Beitrag von Mok »

TomS hat geschrieben:Erstens vergeht kaum ein Tag, wo du nicht eine neue Frage gepostet hast,
Och, wie schlimm!
TomS hat geschrieben: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.
Ist es eine Schande, wenn man sich generell mit hardwareorientierter Programmierung nicht auskennt.

Außerdem ist es wohl eher meine Entscheidung, ob ich ins englische Forum geh', und auch wenn's mehr als einen Grund gibt (z. B. wird auf Bugs und Feature-Requests aktiv eingegangen und nicht stuabend liegen gelassen), habe ich schon vor Kaerus freiwilligen Abschied überlegt, ob ich nicht beideitig aktiv sein will. Jetzt ist es halt genug, da schon seit langer Zeit herumgeflamed, -getrollt und -gespammt wird.

Und weinend weglaufen würde ich das nicht nennen, viel eher mit einem grinsen davonwandern, da ich nicht aus eigener Lust flüchte, sondern aus eigener Lust in eine schönere Stadt ziehe - grob gesagt natürlich.
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Gesperrt