Dll erstellen

  • Interessant ist natürlich, wie man Funktionen für AutoIt verfügbar machen kann.

    Dll-Erstellung ist recht simpel. Zu beachten ist:

    • Nim erstellt standardmäßig 64Bit Dll (also in AutoIt: #AutoIt3Wrapper_UseX64=y erforderlich)

    • Aufpassen bei den Datentypen. z.B. float in Nim ist float64 - muss in AutoIt dann mit double deklariert werden (oder in Nim als float32 - dann ist es in AutoIt float)


  • Interessant ist natürlich, wie man Funktionen für AutoIt verfügbar machen kann.

    In der Tat... das ist es - sehr schön! Da kommen einem ja 1001 neue Ideen...


    Wieso wird denn "NimMain" exportiert? Mit Return type int bekomme ich 1816193777 bzw. 0x6C40EAF1.

  • Wieso wird denn "NimMain" exportiert?

    Nim Main (Ordinal #1) ist die Ansprungadresse und verwaltet den internen Zugriff auf die Funktionen der Dll.

    Die obige Dll sieht kpl. so aus (zu finden unter "..USER\nimcache"):


    Mit Return type int bekomme ich 1816193777 bzw. 0x6C40EAF1.

    OK, dann gilt dasselbe, wie bei float: in AutoIt int64 definieren oder als Export in Nim int32 verwenden.

    Wobei das eigentlich bei Int doch erst zum Tragen kommen dürfte, wenn der Bereich überschritten wird. Integerwerte die im Bereich von int32 liegen, sind doch identisch mit denen von int64. Bei mir hat das auch keinen Einfluß.

  • Schau mal, was ich in meinem Temp-Verzeichnis gefunden habe...

    Sind alle 0 Bytes groß. Wieso sind die da drin? Habe doch nichts von loggen gesagt...