को मैं डेल्फी की एक इकाई के लिए एक सी हेडर परिवर्तित कर रहा हूँ। मुझे यूनियन के बारे में संदेह है। उदाहरण के लिए, नीचे दिए गए उदाहरणों में, तर्क लागू किया गया है (केस इंटेगर ऑफ)? क्या यह इस संरचना को बदलने का सही तरीका है?Convert संरचना डेल्फी
डेल्फी में सी
typedef union _FLT_PARAMETERS {
struct {
PIO_SECURITY_CONTEXT SecurityContext;
ULONG Options;
USHORT POINTER_ALIGNMENT FileAttributes;
USHORT ShareAccess;
ULONG POINTER_ALIGNMENT EaLength;
PVOID EaBuffer;
LARGE_INTEGER AllocationSize;
} Create;
struct {
PIO_SECURITY_CONTEXT SecurityContext;
ULONG Options;
USHORT POINTER_ALIGNMENT Reserved;
USHORT ShareAccess;
PVOID Parameters; // PNAMED_PIPE_CREATE_PARAMETERS
} CreatePipe;
...
में
TCreate = record
SecurityContext: PIO_SECURITY_CONTEXT;
Options: ULONG;
FileAttributes: USHORT;
ShareAccess: USHORT;
EaLength: ULONG;
EaBuffer: PVOID;
AllocationSize: LARGE_INTEGER;
end;
TCreatePipe = Record
SecurityContext: PIO_SECURITY_CONTEXT;
Options: ULONG;
Reserved: USHORT;
ShareAccess: USHORT;
Parameters: PVOID;
end;
_FLT_PARAMETERS = Record
case integer of
0: (Create: TCreate);
1: (CreatePipe: TCreatePipe):
...
क्या मेरे लिए स्पष्ट नहीं है कि कैसे यह प्रणाली के मामले में विकल्प चुनता है। जैसा कि मैं इसे समझता हूं, ऐसा लगता है कि मेरे पास एक वैरिएंट प्रकार था जो टीसीआरएटी या टीक्रेट पाइप हो सकता है। यह सही है? – Flz
क्या आप समझते हैं कि संघ कैसे काम करता है? एक रिकॉर्ड का संस्करण हिस्सा समान है। मैंने एक प्रलेखन लिंक और एक अंश शामिल किया है। यह वास्तव में भी मदद करेगा यदि आपने मुझे दिखाया कि 'POINTER_ALIGNMENT' क्या है, इसलिए मुझे अनुमान लगाने की आवश्यकता नहीं है। –