(Da es auch mit AutoIt zu tun hat hab ich es mal in Hilfe&Unterstützung gepackt, auch wenn es mehr um Qt geht.)
Ich wollte eine Funktion zum auflisten aller Dateien als Dll nutzen, da das ja viel schneller laden würde...
Jetzt weiß ich aber nicht, wie ich die Dll für AutoIt anpassen muss, bzw. wie ich sie in AutoIt nutzen kann.
Mein Ansatz:
Qt:
GlobalHeader:
Spoiler anzeigen
Header:
Spoiler anzeigen
Cpp:
Spoiler anzeigen
#include "filesearch.h"
FileSearch::FileSearch()
{
}
QStringList FileSearch::_getFileList(QString FolderPath,int type,bool sort){
QDir folder(FolderPath);
if(sort){
if(type=0)
return folder.entryList(QDir::AllDirs);
else if(type=1)
return folder.entryList(QDir::Files);
else
return folder.entryList(QDir::Drives);
}
else{
if(type=0)
return folder.entryList(QDir::AllDirs,QDir::Name);
else if(type=1)
return folder.entryList(QDir::Files,QDir::Name);
else
return folder.entryList(QDir::Drives,QDir::Name);
}
}
Alles anzeigen
ProjektDatei:
Spoiler anzeigen
#-------------------------------------------------
#
# Project created by QtCreator 2015-02-28T19:44:26
#
#-------------------------------------------------
QT -= gui
TARGET = FileSearch
TEMPLATE = lib
DEFINES += FILESEARCH_LIBRARY
SOURCES += filesearch.cpp
HEADERS += filesearch.h\
filesearch_global.h
unix {
target.path = /usr/lib
INSTALLS += target
}
Alles anzeigen
AutoIt:
Spoiler anzeigen
$ret=DllCall("FileSearch.dll","PTR","_getFileList","LPCSTR","D:\Bibliotheken\Musik","INT",0,"BOOL",true)
if @error then
msgbox(48,"",@error)
endif
for $i in $ret
msgbox(48,"",$i)
next
Ich vermute auch schon, dass AutoIt nicht einfach mit QString umgehen kann und ich dort die C++ Strings benutzen muss.
Ich hoffe ihr habt euch schonmal damit beschäftigt und/oder konnt mir dabei weiterhelfen.
Achja: Als error kommt bei AutoIt direkt 1 ("unable to use the DLL file").
MfG Kanashius.