Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   LibreOffice-Calc: DLL --> Declare Function-Problem (https://www.delphipraxis.net/208288-libreoffice-calc-dll-declare-function-problem.html)

Andreas13 9. Jul 2021 14:05

LibreOffice-Calc: DLL --> Declare Function-Problem
 
Hallo Community,
ich würde gerne Berechnungsfunktionen aus meinen Delphi-DLL’s nach Excel-Manier auch in einer Calc-Tabelle von LibreOffice verwenden. Ein einfaches Beispiel sieht z.B. so aus:
Code:
Declare Function Reynolds Lib "SuchPfad\ChemWingsFlow.dll"_
(ByVal w#, ByVal d#, ByVal Ny#) As Double
Und die Benutzung der Routine in der Calc-Tabelle sieht wie folgt aus:
Code:
= REYNOLDS(E6;E7;E8)
Hierbei kommt es stets zu einer Fehlermeldung:
Code:
"BASIC-Laufzeitfehler: Fehler beim Laden einer DLL-Datei."
Meine DLL verwendet stets
Delphi-Quellcode:
StdCall;
In Excel funktioniert es seit eh und je einwandfrei.

Leder helfen mir dabei selbst die 4 neuesten Bücher über Makro-Programmierung von LibreOfice-Großmeister Thomas Krumbein auch nicht weiter, weil er immer SUB’s mit eigenen Anzeigefenstern verwendet und keine Funktionen, die in die Zellen schreiben. Diese Frage habe ich bereits vor 9 Monaten auch im LibreOfice-Forum gestellt, https://ask.libreoffice.org/de/quest.../39953/opaque/ aber überhaupt keine Antwort bekommen.

1: Was mache ich falsch?
2: Geht es überhaupt, daß meine Routinen aus der DLL direkt in die Zelle(n) der Calc-Tabelle schreiben?
3: Kann man mit Calc eine sogenannte "Matrix-Funktion" (= ein- und mehrdimensionale Arrays) definieren und die Rückgabewerte der Funktion direkt in die Tabellenzellen schreiben?

Kennt vielleicht jemand das Problem von Euch und hat bereits eine Lösung dafür, oder weiß definitiv, daß es in LibreOfice nicht möglich ist?

Herzlichen Dank für Eure Hilfe im Voraus!

Viele Grüße
Andreas

hoika 9. Jul 2021 14:18

AW: LibreOffice-Calc: DLL --> Declare Function-Problem
 
Hallo,
64bit <-> 32bit - Problem?

Ist Dein LibreOffice 64Bit?

mkinzler 9. Jul 2021 14:18

AW: LibreOffice-Calc: DLL --> Declare Function-Problem
 
Stimmt die Bitigkeit?

Andreas13 9. Jul 2021 14:20

AW: LibreOffice-Calc: DLL --> Declare Function-Problem
 
Meine DLL ist für 32-Bit-Windows kompiliert.
Gruß, Andreas

hoika 9. Jul 2021 14:21

AW: LibreOffice-Calc: DLL --> Declare Function-Problem
 
Halo,
Andreas13, ja,
und wie Bittig ist dein LibreOffice?

Andreas13 9. Jul 2021 14:25

AW: LibreOffice-Calc: DLL --> Declare Function-Problem
 
LibreOffice ist 64-Bit.
Aber auch mein 64-Bit-Excel kann meine 32-Bit-DLL's benutzen.
Andreas
PS:
Jetzt habt Ihr mich verunsichert...
Nur, um sicher zu gehen: Wie stelle ich fest, welche Bitigkeit mein Excel hat? :oops:

Andreas13 9. Jul 2021 14:30

AW: LibreOffice-Calc: DLL --> Declare Function-Problem
 
Jetzt habe ich's: Mein Excel 2016 hat nur 32-Bit... :oops:
Ich muß gleich schauen, ob LibreOffice eine 32-Bit Version hat.
Viele Dank & Gruß,
Andreas

hoika 9. Jul 2021 14:31

AW: LibreOffice-Calc: DLL --> Declare Function-Problem
 
Hallo,
im TaskManager steht beim Prozess *32 oder (32Bit), wenn es ein 32-Bit-Programm ist.

hoika 9. Jul 2021 14:39

AW: LibreOffice-Calc: DLL --> Declare Function-Problem
 
Hallo,
Zitat:

Aber auch mein 64-Bit-Excel kann meine 32-Bit-DLL's benutzen.
Nein, kann es nicht.
Aber wie Du schon geschrieben hattest, hast Du ja ein 32Bit-Excel.

venice2 9. Jul 2021 14:48

AW: LibreOffice-Calc: DLL --> Declare Function-Problem
 
Zitat:

Zitat von hoika (Beitrag 1492095)
Hallo,
Zitat:

Aber auch mein 64-Bit-Excel kann meine 32-Bit-DLL's benutzen.
Nein, kann es nicht.
Aber wie Du schon geschrieben hattest, hast Du ja ein 32Bit-Excel.

Doch, kann es.

Erstelle eine 32Bit.exe die du zwischen der 32Bit_DLL und der 64Bit Anwendung schaltest.
Aus der 32Bit Anwendung sendest du dann über "WM_COPYDATA" die entsprechenden Funktionen an die 64Bit.EXE
Das setzt aber fundierte Kenntnisse der Win_32Api voraus.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:19 Uhr.
Seite 1 von 2  1 2   

Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf