v8 - 如何在 v8 中绑定带有 out 参数的 ac 函数?
问题描述
C函数:
void foo(int* p){
*p = 10;
}
和 js 调用:
var a = 0;
foo(a);
console.log(a);//expect a to be 10
解决方案
JavaScript 中没有原始类型的外参数,而且 V8 的 API 非常努力地不创建与 JavaScript 不一致的行为,因为那会很奇怪™。
另一种解决方案是将字段嵌入对象中:
var a = {value: 0}
foo(a);
console.log(a.value); // This can be made to print 10.
使用这种方法,您可以通过 V8 的 API 使用绑定函数的常规方式,并且在 C++ 端只需修改传入对象的相应属性。
推荐阅读
- php - XAMPP phpMyAdmin 会话错误
- python - 登录后烧瓶重定向网址未重定向到主页
- cesium - 如何在 Cesium JS 中画一个半圆?
- vba - VBA 验证文件的正确(更新)版本的使用
- c# - 接口实现莫名转换List
列出 C# - javafx - 如何创建只读表视图并向其中添加数据?
- c++ - Visual Studio Code c++11 扩展警告
- node.js - 带有 npm install 的 Docker 添加了不需要的符号链接
- android - 程序类型已经存在:com.google.devtools.build.android.desugar.runtime.ThrowableExtension
- sql-server - 如何在 SQL Server 中存储 unicode 字符?