Limitierungen

TwinCAT 3 C++ Module werden im Windows Kernel-Modus ausgeführt. Deswegen müssen die Entwickler einige Limitierungen beachten:

TwinCAT-Funktionen als Ersatz für Win32 API Funktionen

Die originale Win32 API ist nicht im Windows Kernel-Modus verfügbar. Aus diesem Grund ist hier eine Liste der normalerweise verwendeten Funktionen aus der Win32 API und was stattdessen in TwinCAT verwendet werden kann:

Win32API

TwinCAT Funktionalität

WinSock

TF6311 TCP/UDP Echtzeit

Message Boxen

Tracing

Datei-I/O

Siehe Schnittstelle ITcFileAccess, Schnittstelle ITcFileAccessAsync und Beispiel19: Synchroner Dateizugriff, Beispiel20: FileIO-Write, Beispiel20a: FileIO-Cyclic Read / Write

Synchronisation

Siehe Beispiel11a: Modulkommunikation: C-Modul ruft eine Methode eines anderen C-Moduls auf

Visual C CRT

Siehe RtlR0.h

RTTI dynamic_cast Funktion in TwinCAT

TwinCAT hat keine Unterstützung für dynamic_cast<>.

Stattdessen kann die TCOM-Vorgehensweise möglicherweise verwendet werden. Definieren Sie eine Schnittstelle ICustom, die von ITcUnknown abgeleitet ist und die die Methoden enthält, die von einer abgeleiteten Klasse aufgerufen werden. Die Basisklasse CMyBase wird von ITcUnknown abgeleitet und implementiert dieses Interface. Die Klasse CMyDerived wird von CMyBase und von ICustom abgeleitet. Sie überschreibt die TcQueryInterface Methode, die dann anstelle von dynamic cast verwendet werden kann.

TcQueryInterface kann auch zur Darstellung der IsType() Funktion mittels Auswertung des Rückgabewerts verwendet werden.

Siehe Schnittstelle ITcUnknown.