如何在php中调用swig包装的C方法中的引用
how to call references in C methods wrapped by swig in php
我在php代码中调用引用时遇到了严重问题。我用swig包装了我的c++类,并想调用该方法,在阅读了手册后,我发现,在swig中,当c++参数中有引用时,我们有:
class foo {
Public;
double bar(double &a);
}
在swig包装类中,我们有:
double foo_bar(foo *obj,double *a) {
obj->bar(*a);}
我完全理解,我的问题是如何在PHP代码中调用方法栏?我从开始
$ptr_a = &$a
$obj->bar($ptr_a);
但它不起作用。知道吗???
我尝试使用phppointers.I和REF
类型映射来创建使用PHP引用概念的东西。我无法做到这一点,但使用cpointer处理此类问题的标准、语言中立的SWIG方法。我做得很好:
%module test
%include <cpointer.i>
%pointer_class(double,Double);
%inline %{
void func(double& a) {
a = -666.0;
}
%}
按预期与合作
<?php
include('test.php');
echo "testingn";
$a=new Double(0.0);
test::func($a);
echo "In PHP: " . $a->value() . "n";
?>
相关文章:
- 在他自己的方法中,有可能将一个对象取消引用到另一个对象吗
- 在 cpp 文件中隐藏采用模板参数引用的方法
- 拥有映射的现代方法,该映射可以指向或引用已在堆栈上分配的不同类型的数据
- 为什么常量方法可以采用非常量引用?
- 没有取消引用/解包对象的标准方法?
- C++方法中的引用变量
- 引用文件的适当方法是什么?
- C++有什么方法可以在既不调用函数模板也不提供其模板参数的情况下引用函数模板?
- 对结构方法的未定义引用
- 通过基类接受方法转发派生 UniquePtr 的右值会移动引用而不是复制
- 使用移动语义:右值引用作为方法参数
- 引用基类模板的成员变量的简单方法
- 如何继承返回对当前对象的引用的方法?
- 对使用 CMake 生成为 lib .a 的方法的未定义引用
- 对纯抽象类中方法的未定义引用
- C++ 和 WMI:在 IWbemClassObject::P ut 方法中传递对 CIM 类的引用
- 对象引用中的字段以不同的方法返回不同的值
- 具有引用返回类型的重写方法上的协变返回类型无效
- c++,g2o(Graph-Framework),qcreator,未定义的方法引用
- 由于未定义QSerialPortInfo方法引用,无法编译