Aktuelle Zeit: 06.08.2020 14:15

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: string als rückgabewert aus einer dll empfangen
BeitragVerfasst: 03.12.2006 13:11 
Offline

Registriert: 24.08.2005 21:20
ich habe folgendes problem:


ich habe hier eine dll in der eine funktion ist, die mir als ergebnis einen string zurückgibt.

allerdings funktioniert es nicht so wie ich es mir vorgestellt habe:

Code:
Ergebnis.l = OpenLibrary (0,"C:\CAPSImg.dll")
Debug ergebnis.l
Ergebnis2.l =IsFunction(0,"CAPSInit")
Debug ergebnis2
Debug PeekS(CallCFunctionFast(0,"CAPSInit"),255)
CloseLibrary(1)


in der dokumentation steht, daß der rückgabewert ein SDWORD ist und als rückgabe "imgeOK" zurückgibt...

was mache ich falsch..???

DLL: http://www.softpres.org/_media/files:ip ... ache=cache

DOKU: http://www.softpres.org/_media/files:ip ... ache=cache


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 03.12.2006 13:24 
Offline
Benutzeravatar

Registriert: 10.09.2004 09:59
Laut Doku ist imageOK eine Konstante mit Wert 0, wie kommst du denn auf einen String ?
Ausserdem musst du bei CallFunctionFast die Adresse aufrufen, die du bei IsFunction() zurückbekommst.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 03.12.2006 13:43 
Offline

Registriert: 10.11.2004 03:22
und so eine konstruktion
Code:
PeekS(CallCFunctionFast(

würde nur dann funktionieren, wenn die fastcalled function einen pointer zu einem string zurückgibt.

PS: meinte HeXOr evtl. auch so...

_________________
... machts gut und danke für den fisch ...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 03.12.2006 13:46 
Offline
Benutzeravatar

Registriert: 20.04.2006 09:50
pb4
Code:
If OpenLibrary (0,"C:\CAPSImg.dll")
  *pF.l =GetFunction(0,"CAPSInit")
  If CallCFunctionFast(*pF,"CAPSInit")=0
    ;...
    Debug "arbeiten"
    ;...
  EndIf
  CloseLibrary(1)
EndIf


pb394
Code:
If OpenLibrary (0,"C:\CAPSImg.dll")
  *pF.l =IsFunction(0,"CAPSInit")
  If CallCFunctionFast(*pF,"CAPSInit")=0
    ;...
    Debug "arbeiten"
    ;...
  EndIf
  CloseLibrary(1)
EndIf

_________________
my pb stuff..
Bild..jedenfalls war das mal so.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 03.12.2006 14:10 
Offline
Benutzeravatar

Registriert: 10.09.2004 09:59
Das stimmt so nicht #NULL, richtig wäre:
Code:
CallCFunctionFast(*pF)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 03.12.2006 14:35 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
Wie ich sehe ist es eine Funktion ohne Parameter

Code:
Ergebnis = CallFunction(#Library, "CAPSInit")

; oder

*CAPSInit = GetFunction(#Library, "CAPSInit")

Ergebnis = CallFunctionFast(*CAPSInit)


FF :wink:

_________________
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.4x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf My Webspace


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 31 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye