3
我有在C++函數,例如:返回C++指針到perl
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";
我ahve正確,因爲在調用函數getfield命令()接口的正確的intValue獲取打印定義的create_interface功能。
的程序的輸出是如下:
_p_void=SCALAR(0x5271b0)
5970832
pointer value in c++ 0x5b1b90 value of temp 22
爲什麼兩個值 - 在C++指針和在Perl不同的參考?如何從引用中獲取intValue? (即該值22)