Teilweise werden sie nach Updates von Avira Antivir als Virus eingestuft, das wird aber meistens schnell behoben.
Da die EXE alle AutoIt Funktionen enthält und einige davon die auch von Viren benutzt werden, kann es häufiger passieren, dass fälschlicherweise ein Virus identifiziert wird.
Beiträge von Marthog
-
-
...
Oder eine Alternative mit Execute basteln. Damit kann man keine Funktionen definieren, aber man könnte doch zum Beispiel in der Library eine Tabelle mit den zu exportierenden Funktionen anlegen, die Codestellen auslesen und mit Execute ausführen.
Einen Sinn sehe ich dabei aber nicht wirklich. Die Vorteile normaler DLLs (Speicher sparen, Unabhänigkeit von Windowsversion) gelten nicht, stattdessen wird für das Auslesen und Aufrufen einiges an Zeit verbraten.
-
Du darfst keine AutoIt-arrays übergeben. Du musst einen DLLStruct erstellen.
Erstmal solltest du ganz einfache FUnktionen (addieren etc.) verwenden, die normale Parameter verlangen und dich danach weiterarbeiten.
-
Du musst std::string verwenden. std ist der namespace. Wenn du das nicht jedesmal hinschreiben willst, kannst du auch an den Anfang using namespace std; schreiben. Der Vorteil der Namespace-methode ist, dass jedes Modul seine eigenen Klassen und Funktionen haben kann, ohne dass sich die Namen überschneiden. Aus dem gleichen Grund verwendet man in AutoIt ja auch immer _UDFNAME_FUNKTIONSNAME.
-
So geht es bei mir:
Spoiler anzeigen
[autoit]#include <Array.au3>
[/autoit] [autoit][/autoit] [autoit]Global $__MEMORY_STRINGS_ARRAY__[1] = [0]
[/autoit] [autoit][/autoit] [autoit]Func _MemoryWString_Create($text)
[/autoit] [autoit][/autoit] [autoit]
Local $struct = DllStructCreate("wchar["&StringLen($text)&"]")
DllStructSetData($struct, 1, $text)For $i=1 To UBound($__MEMORY_STRINGS_ARRAY__)-1 ; find empty places
[/autoit] [autoit][/autoit] [autoit]
If $__MEMORY_STRINGS_ARRAY__[$i]=0 Then
$__MEMORY_STRINGS_ARRAY__[$i] = $struct
Return $i
EndIf
NextReturn _ArrayAdd($__MEMORY_STRINGS_ARRAY__, $struct) ; no empty place
[/autoit] [autoit][/autoit] [autoit]
EndFunc
Func _MemoryWString_Release($id)
$__MEMORY_STRINGS_ARRAY__[$id] = 0 ; free (a empty place in array)
EndFuncFunc _MemoryWString_GetString($id)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Return DllStructGetData($__MEMORY_STRINGS_ARRAY__[$id], 1)
EndFunc
Func _MemoryWString_GetPtr($id)
Return DllStructGetPtr($__MEMORY_STRINGS_ARRAY__[$id])
EndFunc; Test:
[/autoit]
Local $struct = DllStructCreate("ptr") ; Create Structure with pointer
$buffer = _MemoryWString_Create("Hallo") ; Create Buffer with string
DllStructSetData($struct, 1, _MemoryWString_GetPtr($buffer))Nach Benutzen des Buffers sollte er mit _MemoryWString_Release freigegeben werden.
-
Benutze doch IrrEdit. Die neuen haben eine 14 Tage Trial-Version von Coppercube dabei und der für Irrlicht wichtigere Teil soll auch danach noch weiter funktionieren.
Ich verwende den alten IrrEdit 1.5 und er läuft prima (Ich hab es nicht mit den neuen verglichen).
-
Ich höre auch sehr gerne Nightwish zu Weihnachten. Passt gut.
Von traditionellen Weihnachtsliedern am liebsten:
Driving home for ChristmasOder mal eine ganz andere Richtung: Unheilig hat auch ein paar Weihnachtslieder gemacht (die sind aber weniger besinnlich, da bekommt die Oma nen' Herzschlag).
Das finde ich auch gut, höre sie aber nicht. -
Und ich bin dafür dass wir es (wenn es möglich wäre) in den zukünftigen AutoIt Versionen aufnehmen könnten

Da gibt es noch andere Dinge, z.B. vernünftiger inline-Assembler und einfachere struct's.
-
Ja. Allerdings muss sich das auch lohnen. Der DLL-Aufruf verbraucht viel Zeit. Lohnt sich also nicht, nur für wenige Brechnungen einen DLL-Call zu machen. Da muss schon etwas Komplexes gemacht werden (z.B. mit Matrizen oder viele Berechnungen).
-
Das dauert länger, als bei normalen Variablen. Der Hauptvorteil ist, dass man die Pointer auf DLLStructs an DLLs übergeben kann und diese damit arbeiten.
-
In Funktionen kannst du auch ByRef verwenden.
[autoit]Func Tralala(ByRef $variable)
[/autoit][autoit][/autoit][autoit]
$variable = 1
EndFuncGlobal $irgendeine_Variable = 0
[/autoit]
Tralala($irgendeine_Variable)Mit diesen beiden Methoden sollte man eigentlich alles können, was man auch in C kann.
-
Das Problem ist, dass ich halt nich weiß, was ich proggen könnt.. xD
Das kommt drauf an.Von Programmen, wie Internet-explorer, Musik-Player etc. kann ich dir nur abraten. Das sind im Grunde nur Befehle, mit denen man ein anderes Programm bedient. Man lernt keine Grundlagen, versteht die Funktionsweise nicht und lernt nicht, sich bei Problemen selber zu helfen.
Ich empfehle, dich entweder mit GUIs oder mit Berechnungen auseinanderzusetzen. Berechnungen sind wichtiger und man lernt viel allgemein wichtiges, dafür ist GUI weniger dröge Theorie und man hat schnell ein sichtbares Ergebnis. -
Marthog: Welches Engine kennst du denn mitder man Boneanimation einfacher erstellen kann? Ist diese kostenlos? (auch kommernziell?)
Zum Erstellen kenne ich keine. Das musst du ganz normal mit Blender, Maya, Autodesk 3d. etc machen.
Abspielen könntest du das in jeder Engine. Auch die, dir schon vertraute, Irrlicht-Engine kann Bones verwenden und daran andere SceneNodes befestigen (Stichwort: IAnimatedMeshSceneNode::getJointNode) und lässt sich durch einfache Renderfunktionen (IVideoDriver::drawMeshBuffer) auch einfach und plattformunabhängig verwenden und erweitern. -
Meistens wird der Körper aus Bone-animations aufgebaut. Für das gleichzeitige Abspielen von Animationen kann man mehrere Objekte verwenden.
Der Kopf ist ohnehin meistens ein Sonderfall. Er wird oft als Morphmesh (jede einzelne Fläche bewegt sich) animiert und dreht sich ohne extra erstellte Animation zu anderen Personen hin.
Empfehlen würde ich eine Engine, die einfache Handhabung der Render-funktion und Codebeispiele hat, damit du nicht alles selber machen musst.
-
Mach doch noch eine Ein- bzw. Ausgabemaske.
-
Wenn du als 64-bit ausführst, kannst du keine 32-bit dlls laden.
Schreibe
[autoit]#AutoIt3Wrapper_UseX64=no
[/autoit]an den Anfang der Datei.
-
Du bist über die maximale Stringlänge hinausgeschossen.
Mit
[autoit]Local $string = "erster Teil"
[/autoit]
string &= "zweiter Teil"kann man das aufteilen.
Am Besten ist es aber, du erstellst eine Datei un machst jede Zeile ein Item.
[autoit]
Dann schreibst duGUIDataSeparatorChar("GUIDataSeparatorChar", @CRLF)
[/autoit]an den Skriptanfang und liest es mit
[autoit]FileRead
[/autoit]ein.
-
Alles anzeigen
Also Spiele die ich sehr interessant finde:
Gothic 1 und 2
Minecraft mit Freunden auf einem netten Server und etwas Kreativität
Warcraft 3 und vlt. auch Starcraft 2
Dead Island finde ich auch sehr unterhaltsamMeine Empfehlung wie immer: Gothic 1 und 2
Pro: extrem gute Story mit gelungener Atmosphäre
....
...
...
Contra:
Grafik... ein Remake wäre tollGefragt war nach Ego-shootern

Ich finde Gothic 1 und 2 auch sehr gut.
Und zur Grafik: Es gibt in Gothic 1 ein Modprojekt, das (fast) alle Modelle und Texturen ersetzen will und demnächst wird man mit Gothic Rebirth anfangen. -
Meinst du bei der Schrift?
installier mal neuen Grakatreiber. Könnte helfen. -
Wenn das mit Rundll32 nicht geht, einfach mal das hier lesen.