Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  NX Programmierung
  Wrapper-Funktion für UF_ATTR_read_value

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX
  
Cyber-Security-Richtlinie NIS-2: Warum der Maschinenbau jetzt handeln muss, ein Webinar am 23.09.2025
Autor Thema:  Wrapper-Funktion für UF_ATTR_read_value (977 mal gelesen)
MarckyMON
Mitglied
Programmierer


Sehen Sie sich das Profil von MarckyMON an!   Senden Sie eine Private Message an MarckyMON  Schreiben Sie einen Gästebucheintrag für MarckyMON

Beiträge: 35
Registriert: 07.07.2008

erstellt am: 21. Apr. 2009 11:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo     ,

Ich bin ziemlich neu zu C und versuche eine Wrapper-Funktion für die UF-Funktion UF_ATTR_read_value zu erstellen. Meine Funktion sieht aus wie folgt:

Code:

extern int TDF_ATTR_read_string
(
tag_t attrTag, /* IN */
char *title, /* IN */
char **value /* OUT */
)
{
UF_ATTR_value_t attr;
int len;
int ec;

ec = UF_ATTR_read_value(attrTag, title, UF_ATTR_string, &attr);
if (attr.type == UF_ATTR_string)
{
len = (int)strlen(attr.value.string);
(*value) = (char *)malloc((len + 1) * sizeof(char));
sprintf(*value, attr.value.string);
}

return(ec);
}


Ich rufe die Funktion aus wie z.B.:

Code:

char     *value = NULL;
tag_t    partTag = NULL_TAG;


partTag = UF_ASSEM_ask_work_part();

//Überprüfen, ob partTag == NULL_TAG ist...

TDF_ATTR_read_string(partTag, "AAA_REVISION", &value);

//Weitermachen...



Allerdings habe ich das Problem, daß NX4 abstürzt, oder halt value == NULL ist, obwohl das Part-Attribute AAA_REVISION existiert.  

Verpass ich etwas?? Früher hat es funktioniert, weiss nicht aber wieso. Ich bitte dringend um Eure Hilfe, danke!!!


EDIT: Ich habs - ich muss die Stuktur attr zuerst initalizieren, damit UF_ATTR_read_value überhaupt läfut (sonst wird ein Error-Code mit Wert 11 zurückgeliefert). Was mich natürlich ärgert, ist es nirgendwo in der Open C API-Doku geschrieben ist, daß ich die Struktur intializieren muss... 
Hier die neue Funktion:

Code:

extern int TDF_ATTR_read_string
(
tag_t attrTag, /* IN */
char *title, /* IN */
char **value /* OUT */
)
{
UF_ATTR_value_t attr;
int ec, len;

attr.value.string = NULL;
ec = UF_ATTR_read_value(attrTag, title, UF_ATTR_string, &attr);
if (ec == 0)
{
if (attr.type == UF_ATTR_string)
{
//sprintf(value, attr.value.string);
len = (int)strlen(attr.value.string);
(*value) = (char *)malloc((len + 1) * sizeof(char));
sprintf(*value, attr.value.string);
}
//else
//sprintf(value, "\0");
}
//else
//sprintf(value, "\0");

return(ec);
}


------------------
Gruß,
char *name = "Marc";

[Diese Nachricht wurde von MarckyMON am 21. Apr. 2009 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



?Technischer Systemplaner / Konstrukteur (m/w/d) Sonderlöschanlagen ? Fachbereich Gaslöschanlagen

Zur Unterstützung unseres Teams suchen wir für unsere Standorte Eisenberg (Petersberg), Montabaur (Dernbach) und München (Forstinning) zum nächstmöglichen Zeitpunkt einen

?Technischen Systemplaner / Konstrukteur (m/w/d) für Sonderlöschanlagen ? Fachbereich Gaslöschanlagen

Anzeige ansehenKonstruktion, Visualisierung
Overcast
Mitglied



Sehen Sie sich das Profil von Overcast an!   Senden Sie eine Private Message an Overcast  Schreiben Sie einen Gästebucheintrag für Overcast

Beiträge: 111
Registriert: 21.12.2005

.

erstellt am: 20. Mai. 2009 16:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für MarckyMON 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von MarckyMON:
Was mich natürlich ärgert, ist es nirgendwo in der Open C API-Doku geschrieben ist, daß ich die Struktur intializieren muss...  

Doch, genau das ist explizit beschrieben:

Zitat:

UF_ATTR_value_p_t value Input / Output to be freed

Typed Attribute Value:
If "type" is UF_ATTR_string then
"value->value.string" must either be NULL or
point to a character buffer of size
UF_ATTR_MAX_STRING_LEN + 1.

If the value is NULL, then the returned buffer will be allocated,
and the user is responsible for freeing it
by calling UF_free().



Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz