Как вы передаете указатели во внешнюю библиотеку?

Вопрос. При использовании внешних библиотек, там же pointer! в Rebol2 как есть в Red/System?

Если бы c декларация была:

void f (int* i);

Как бы я определил routine!?

f: make routine! [
    "Does Something"
    int [pointer! [integer!]]
    return: [char!]
] lib "f"

Я вижу http://rebol.com/docs/library.html

"Функции внешней библиотеки, которым передаются указатели, обычно ожидают, что указатели будут типами char или void. В настоящее время подпрограммы REBOL не поддерживают тип данных void. В большинстве случаев вы можете безопасно передавать char вместо void. Для возвращаемых значений используйте long вместо пустоты."

Впрочем, просто немного запутался. Как правильно определить рутину для f?

1 ответ

Решение

Как говорится в ссылке

f: make routine! [
  "Does Something"
  pInt [char*]
  return: [long]
] lib "f"  

работал на меня несколько лет назад

Другие вопросы по тегам