Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#12

AW: AnsiStringArray aus DLL an Excel-VBA

  Alt 29. Apr 2019, 18:54
Was ich dir aber sagen kann das mein Modul so unter Excel 64Bit nicht läuft. (Keine Ahnung was du installiert hast)
Es fehlt PtrSafe in allen Declarationen.
Dann muss die DLL von Delphi auch in 64Bit vorliegen.
Zur Kompatibilität der Daten Typen

Code:
Option Explicit

Private Declare PtrSafe Function PAnsiChar_To_Excel Lib "Delphi_String_for_Excel_Test.dll" ( _
    Optional ByVal Delimiter As Byte = 59 _
) As LongPtr

Private Declare PtrSafe Function lstrlen Lib "kernel32" Alias "lstrlenA" ( _
    ByVal lpString As Long _
) As LongPtr

Public Declare PtrSafe Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
    ByRef Destination As Any, _
    ByRef Source As Any, _
    ByVal length As LongPtr_
)
So sollte es aussehen.
Eventuell kommst du ja jetzt weiter.

Für die ListBox\ListenFeld könntest du dir ja ein Array erstellen ( bzw. haben wir schon alist() ) und das anstelle dessen verwenden wenn du keine UserForm verwenden möchtest.
Oder du schickst die werte von alist() direkt in deine Excel Tabelle.

https://analysistabs.com/vba-code/ex...rform/listbox/
https://www.guru99.com/creating-your...-in-excel.html

PS:
Anstelle des Button kannst du dir in Excel ein Macro erstellen was auf die cmdGet_Click() verweist und den Code dort ausführen.

gruss

Geändert von EWeiss (30. Apr 2019 um 18:26 Uhr)
  Mit Zitat antworten Zitat