I have to implemet following external structure (extrakt from the german api Doku):
typedef struct { /**@brief MUST be always 2. */ uint32_t version; /** @brief Pointer to KeyStore -- Verweis auf den KeyStore, see EricGetHandleToCertificate(). */ EricZertifikatHandle zertifikatHandle; /** @brief PIN für den KeyStore.*/ const char *pin; /** * @brief MUST be NULL in my context Dieser muss ... In allen anderen Fällen muss hier NULL übergeben werden. Der Parameter abrufCode besteht aus 2 x 5 Zeichen, die mit "-" verbunden sind. Beispiel: "K6FG5-RS32P" */ const char *abrufCode; } eric_verschluesselungs_parameter_t; My Problem is, that i have to assign a NULL - value to the attribute abrufCode. I have tried varies possibilities but I get always the error, that the attribute abrufCode must have the value NULL. " Extract from log-file: 019-09-05 17:08:52,257709[0x00007fe036a2f050] ERROR: Für die übermittelte Datenart ist die Angabe eines Abrufcodes nicht zulässig, daher muss für den Abrufcode der Wert NULL übergeben werden. 610001029" How do I assign a NULL value to an attribute in a FFIExternalStructure? Following my last attempt (extracted from the Pharo Booklet Colletion "Calling Foreign Functions with Pharo May 31,2018") I assign values not directly with the generated attributes but with "api???" attributes. FFIExternalStructure subclass: #ERiCVerschluesselungsParameter instanceVariableNames: '' classVariableNames: 'OFFSET_ABRUFCODE OFFSET_PIN OFFSET_VERSION OFFSET_ZERTIFIKATHANDLE' package: 'Bajoras-ERiC'! ERiCVerschluesselungsParameter class >> fieldsDesc [ "ERiCVerschluesselungsParameter rebuildFieldAccessors" ^ #( uint32 version; ERiCZertifikatHandle * zertifikatHandle; char * pin; char * abrufCode; ) ] ERiCVerschluesselungsParameter >> initialize [ self apiVersion: 2; apiAbrufCode: nil; apiPin: 'mySecret'. ] ERiCVerschluesselungsParameter >> accessorMethods for: pin, version, abrufCode, zertifikatHandle ("This method were automatically generated") ERiCVerschluesselungsParameter >> apiAbrufCode: aCode [ | codeSize anAbrufCode | codeSize := 11. anAbrufCode := FFIExternalArray externalNewType: 'char' size: codeSize. 1 to: codeSize do: [ :idx | anAbrufCode at: idx put: Character null ] . aCode ifNotNil: [ aCode doWithIndex: [ :char :i | anAbrufCode at: i put: char ]. ]. self abrufCode: anAbrufCode. ] ERiCVerschluesselungsParameter >> apiPin: aPin [ | newPin | newPin := FFIExternalArray externalNewType: 'char' size: aPin size. aPin doWithIndex: [ :char :i | newPin at: i put: char ]. self pin: newPin. ] ERiCVerschluesselungsParameter >> apiVersion: aVersion [ | cryptoVersion | cryptoVersion := 2. self version: cryptoVersion. ] Thanks, Georg Hagn