У меня есть функция в C ++, такая как:
void* getField(interface* p)
{
int* temp = new int( p->intValue);
cout<< "pointer value in c++" << temp << "value of temp = " << temp << endl;
return temp;
}
Я использую SWIG для генерации оболочек для вышеуказанного класса.Теперь я пытаюсь получить возвращенное значение указателя в Perl.Как мне это сделать ??
Я написал следующий Perl-скрипт для вызова функции:
perl
use module;
$a = module::create_new_interface();
$b = module::getField();
print $b,"\n";
print $$b, "\n";
Я правильно определил функцию create_interface, так как при вызове функции getField () правильный intValue изинтерфейс печатается.
Вывод программы следующий:
_p_void=SCALAR(0x5271b0)
5970832
pointer value in c++ 0x5b1b90 value of temp 22
Почему два значения - указатель в C ++ и ссылка в perl различны?Как я могу получить intValue из ссылки?(т.е. значение 22)