Ich versuche, ReadFileEx in js-Ctypes arbeiten und lief in ein kleines Hindernis bei der Umwandlung der OVERLAPPED-Struktur in js-Ctypes. Irgendwelche Tipps auf der Übersetzung würden sehr geschätzt werden:Wie konvertiere ich OVERLAPPED-Struktur in js-Ctypes?
typedef struct _OVERLAPPED {
ULONG_PTR Internal;
ULONG_PTR InternalHigh;
union {
struct {
DWORD Offset;
DWORD OffsetHigh;
};
PVOID Pointer;
};
HANDLE hEvent;
} OVERLAPPED, *LPOVERLAPPED;
Das ist nicht richtig, aber ich begann mit
const struct_overlapped = new ctypes.StructType("overlapped",
[ {"Internal": ctypes.uint64_t.ptr},
{"InternalHigh": ctypes.uint64_t.ptr},
[ [ {"Offset": ctypes.uint32_t},
{"OffsetHigh": ctypes.uint32_t} ],
{"Pointer": ctypes.voidptr_t} ],
{"hEvent": ctypes.voidptr_t} ]);
aber ich bin nicht sicher, wie die „Vereinigung“ zu handhaben und die zweite Struktur .
Aktualisierung. Vielleicht so etwas?
const struct_offset = new ctypes.StructType("offsetStruct",
[ {"Offset": ctypes.uint32_t},
{"OffsetHigh": ctypes.uint32_t} ]);
const struct_overlapped = new ctypes.StructType("overlapped",
[ {"Internal": ctypes.uint64_t.ptr},
{"InternalHigh": ctypes.uint64_t.ptr},
[ {"offsetStruct": ctypes.struct_offset},
{"Pointer": ctypes.voidptr_t} ],
{"hEvent": ctypes.voidptr_t} ]);
Aber ich bekomme ein Fehler
Message: Error: struct field descriptors must contain one property
Update 2. Vielleicht funktioniert der erste Versuch?
Besorgt über diese Notiz auf https://developer.mozilla.org/en-US/docs/Web/API/ChromeWorker - Diese Funktion ist nicht standardisiert und befindet sich nicht auf einem Standard-Track. Verwenden Sie es nicht auf Websites, die mit dem Internet verbunden sind: Es funktioniert nicht für jeden Benutzer. Es kann auch zu großen Inkompatibilitäten zwischen den Implementierungen kommen und das Verhalten kann sich in Zukunft ändern. – tofutim
Kann ich mit ChromeWorker mein Add-on genehmigen? – tofutim
@tofutim, diese Warnung ist für Webentwickler gedacht. ChromeWorker werden für Addons dringend empfohlen, da sie alles aus dem Hauptthread entfernen. In Zukunft wird alles von einem ChromeWorker sein, das ist der Plan. Nun, sie sagten, dass sie alles vom Hauptfaden wollen, was ich für einen ChromeWorker halte. – Noitidart