string als result aus einer dll..?? ist das möglich..??

Anfängerfragen zum Programmieren mit PureBasic.
x_to
Beiträge: 16
Registriert: 24.08.2005 21:20
Kontaktdaten:

string als result aus einer dll..?? ist das möglich..??

Beitrag von x_to »

hi,

ich habe hier eine dll ausder ich eine funktion aufrufe, die als ergebnis ein string zurückliefert...

allerdings gibt mir purebasic die fehlmeldung, daß es eien zahl als ergebnis erwartet...vor dem compilieren..

ist es möglich auch eine zeichenkette als ergebnis aus einer funktion zu bekommen..??
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

Vielleicht sind es Zeichen im ASCII Format...heisst du musst sie irgendwie mit

Code: Alles auswählen

CHR()
auflösen...ganz sich bin ich mir nicht-aber wäre möglich....

Gr33tz
Tafkadasom2k5
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Einfach mit Peeks(Procedure(...)) aufrufen.
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
x_to
Beiträge: 16
Registriert: 24.08.2005 21:20
Kontaktdaten:

Beitrag von x_to »

öhmm...das müßtet ihr mir mal näher erklären... :oops:
Benutzeravatar
Eric
Beiträge: 303
Registriert: 05.09.2004 09:50
Wohnort: Göttingen

Beitrag von Eric »

Die Funktion liefert als Ergebnis höchstwarscheinlich die Adresse von dem String.
und mit PeekS(Procedure(...)) wird dieser String dann ausgelesen.
El_Choni_work: cant't you just spit the binary data to sqlite, as you would spit a hamster into a microwave oven?
* Fangles falls off the chair laughing
Bild
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

Beitrag von ts-soft »

Du meinst wahrscheinlich sowas:

Code: Alles auswählen

DLL = OpenLibrary(#PB_Any, "MyDLLWithString.dll")
If DLL
  DLLString.s = PeekS(CallFunction(DLL, "GiveMeAString"))
  CloseLibrary(DLL)
EndIf
Debug DLLString.s
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
x_to
Beiträge: 16
Registriert: 24.08.2005 21:20
Kontaktdaten:

Beitrag von x_to »

ts-soft hat geschrieben:Du meinst wahrscheinlich sowas:

Code: Alles auswählen

DLL = OpenLibrary(#PB_Any, "MyDLLWithString.dll")
If DLL
  DLLString.s = PeekS(CallFunction(DLL, "GiveMeAString"))
  CloseLibrary(DLL)
EndIf
Debug DLLString.s
die idee ist ja gut, allerdings stürzt pb ab und DLLString.s enthält NULL...

niemand ne andere lösung..??
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> die idee ist ja gut, allerdings stürzt pb ab und DLLString.s enthält NULL...
> niemand ne andere lösung..??

die Lösung, so wie sie ts-soft beschrieben hat, ist die normale
Vorgehensweise, um an einen String in der DLL zu gelangen. Wenn PB
abstürzt, dann hast Du einen Fehler gemacht.

Zeig mal den Code Deiner DLL.

Grüße ... Kiffi
a²+b²=mc²
Antworten