Как вы передаете указатели во внешнюю библиотеку?
Вопрос. При использовании внешних библиотек, там же 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"
работал на меня несколько лет назад