moin,
ich hab mir eine .dll in c++ geschrieben und möchte sie in autoit verwenden ... leider hab ich jetzt das problem, dass autoit immer crasht.
Ich konnte feststellen, dass die wie gewünscht die funktion die ich per dllcall aufrufe (siehe script) immer komplett, fehlerfrei durchläuft.
Nur danach passiert irgendwas, was autoit crasht...
In der anlage befindet sich mein c++ source ....
C
#include "main.h"
#include "binarypatch.h"
// wir legen ein neues objekt vom typ Dateiverarbeitung an:
Dateiverarbeitung o1;
extern "C" __declspec(dllexport) bool FileRead(char* filename)
{
string neu(filename);
cout << "neu: " << neu << endl;
if (o1.ReadFile(neu) == false) { system("pause"); return true; }
else { system("pause"); return false;}
}
extern "C" __declspec(dllexport) void FilePatch(string searchstr, string replacestr, string replacemsk, bool showlog, string searchmsk)
{
o1.SearchReplace(searchstr, replacestr, replacemsk, showlog, searchmsk);
}
extern "C" __declspec(dllexport) bool FileWrite(char* filename)
{
string neu(filename);
if (o1.WriteFile(neu) == false) { return true; }
else { return false; }
}
Alles anzeigen
hier mein Autoitcode der das ganze (mir unerklärlicher weise) beim DllCall crasht:
[autoit]Func _Rechnen()
$Open = DllOpen("DLLtest.dll")
$return = DllCall ($Open, "BOOLEAN", "FileRead", "str" ,"test.dat")
MsgBox (1,"error", @error)
MsgBox (64, "Ergebnis", "Das Ergebnis lautet " & $return[0])
EndFunc