3.37 DM_IndexReturn

Diese Funktion dient zur sicheren Funktionsrückgabe von lokalen Index-Werten (DM_Index) an den Aufrufer. Bei Verwendung von lokalen Variablen und Strukturen in einer C-Funktion sind diese nach der Rückgabe ungültig. Mit dieser Funktion kann problemlos und sicher ein lokaler Index zurückzugeben werden.

Zu diesem Zweck wird eine temporäre Kopie angelegt.

DM_Index * DML_default DM_EXPORT DM_IndexReturn
(
  DM_Index   *pindex,
  DM_Options  options
)

Parameter

-> DM_Index * pindex

Dieser Parameter verweist auf den Index welcher zurückgegeben wird.

-> DM_Options options

Hier sind keine Optionen erforderlich, ist mit 0 zu belegen.

Rückgabewert

Zurückgegeben wird ein für die Funktionsrückgabe gültiger Zeiger auf eine DM_Index-Struktur oder NULL im Fehlerfall. Ein Fehler kann z.B. vorliegen, wenn die Funktion im falschen runstate aufgerufen wird oder das Kopieren nicht ausgeführt werden konnte.

Beispiel

Dialogdatei

dialog YourDialog
function index SwapIndex(index Idx);

on dialog start
{
  print SwapIndex([1,3]);
  exit();
}

C-Teil

...

DM_Index* DML_default DM_ENTRY StringOf(DM_Index* Idx)
{
  DM_Index newIdx;
  newIdx.first = Idx->second;
  newIdx.second = Idx->first;

  /* wrong: return &newIdx; => newIdx is local! */
  return DM_IndexReturn(&newIdx, 0);
}

Verfügbarkeit

Ab IDM-Version A.06.01.a

Siehe auch

Funktionen DM_StringReturn, DM_ValueReturn