【发布时间】:2011-11-16 01:57:36
【问题描述】:
我在 [example.cc] 中有一个方法:
std::string Car::accelerate (std::string n)
{
cout<<n<<endl;
return n;
}
我想从一个 php 扩展调用这个方法
我在我的 [test_php.cc] 扩展中写了这个:
char *strr=NULL;
int strr_len;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &strr, &strr_len) == FAILURE) {
RETURN_NULL();
}
std::string s(strr);
RETURN_STRING(car->accelerate(s),1);
我有以下错误:
warning: deprecated conversion from string constant to ‘char*’
/home/me.cc:79: error: cannot convert ‘std::string’ to ‘const char*’ in initialization
/home/me.cc: At global scope:warning: deprecated conversion from string constant to ‘char*’
如果我通过简单的调用 car->accelerate(s) 更改 return_string(..) _;它有效..确实它不会打印任何内容作为返回函数。需要一些帮助。欣赏
【问题讨论】:
-
您能否提供行号以便我们知道第 79 行是哪一行?
标签: php c++ php-extension php-internals