sorry wenn schon ein ähnlichen Beitrag irgendwo im Forum steht.
Ich habe aus den Foren ein Test Beispiel zusammengebastelt. MeineDll.dll mit Zwei Prozeduren mit den Ziel das ich mit MeineDll.pb diese String’s Abfragen kann.
Das Ergebnis ist das in beiden Abfragen nur das erste Buchstabe durch das PeekS gelesenen wird. Wenn ich aber die TEIL 1 Code von der TEIL2 in zwei verschiedene PB module trenne dann sind die im TEIL2 gelesenen String’s richtig angezeigt worden.
Ich verstehe nicht was ich da falsch mache.
Hier der Code als Beispiel:
Code: Alles auswählen
; MODUL PB
; TEIL 1 - Name der Library Funktionen ablesen
#LIBRARY = 0
If OpenLibrary(#LIBRARY,"MeineDll.dll") ; Name of DLL to browse.
If ExamineLibraryFunctions(#LIBRARY)
Debug LibraryID(#LIBRARY)
While NextLibraryFunction()
Debug LibraryFunctionName()
Wend
EndIf
CloseLibrary(#LIBRARY)
EndIf
;TEIL 2 - Aus der DLL die String's holen.
If OpenLibrary(1, "MeineDll.dll")
ExamineLibraryFunctions(1)
*Ergebnis = CallFunction(1, "start001")
Debug PeekS(*Ergebnis)
*Ergebnis = CallFunction(1, "start002")
Debug PeekS(*Ergebnis)
CloseLibrary(1)
EndIf
Code: Alles auswählen
;DLL
ProcedureDLL AttachProcess(Instanz.i)
Global MeinString.s = "#Hier lese ich einen Wert"
EndProcedure
ProcedureDLL.s start001()
ProcedureReturn MeinString
EndProcedure
ProcedureDLL.s start002()
ProcedureReturn "#Auch gelesen"
EndProcedure
Bye
FooFenrir