草庐IT

c++ - 这与 ObjectWrap::Unwrap 的 Holder

v8::FunctionCallbackInfo类区分This和Holder。我知道JavaScript中的this是什么,并假设This反射(reflect)了该设置。但是我对Holder是什么只有一个模糊的概念,对于什么时候应该使用Holder而不是This也知之甚少。特别是,在编写基于nan的node.js扩展和展开ObjectWrap时,我应该传递哪些?当前node::ObjectWrapdocumentation有使用Holder的例子,而currentNan::ObjectWrapdocumentation使用This,因此“只需按照文档中的示例”无助于回答这个问题。

javascript - 在没有网络的情况下编译 V8 等

我想将V8嵌入到我正在处理的项目中。这个项目根本不使用网络——事实上它出于安全原因避免了网络(我不想打开一个我没有准备好的跨站点脚本潘多拉魔盒)。无论如何,我只想要javascript。据我了解,V8只是一个简单的javascript编译器和VM,这很好——但它需要使用各种第3方库进行编译才能适应添加的功能。我想网络就是其中之一。为了能够构建使用V8的应用程序,您必须链接到Winsock。我希望能够从引擎中剥离这些额外的库,并从头开始将绑定(bind)添加到我自己的内部代码中(除了字符串和类似的东西),但我找不到指南或一些文档可以帮助我做到这一点。作为我应该了解的JavaScript引

c++ - V8 目前是线程安全的吗?

当我意识到我错过了一个重要的点:并发时,我最终选择了v8作为我的应用程序的脚本引擎。由于几个关键因素,我决定使用v8而不是lua,但显然我不能使用v8编写线程安全代码或一般的多线程任务。在官方文档中我没有找到v8的并发特性的引用,他们描述了GC,v8是用C++编写的,它支持很多平台等等,但是在wiki和在C++应用程序中嵌入v8的官方文档。问题:我应该如何考虑v8?我必须直接从C++将我的应用程序公开为一组单线程/线程安全函数吗? 最佳答案 V8不是线程安全的,但这并不意味着您不能在线程环境中使用它。这样做的唯一规定是使用V8的Lo

c++ - 错误 C7034 : an array cannot be initialized with a parenthesized initializer

我正在尝试编写一个nativeNode插件,它枚举Windows机器上的所有窗口并将它们的标题数组返回给JSuserland。但是我被这个错误难住了:C:\ProgramFiles(x86)\MicrosoftVisualStudio14.0\VC\include\xmemory0(655):errorC3074:anarraycannotbeinitializedwithaparenthesizedinitializer[C:\xampp\htdocs\enum-windows\build\enumWindows.vcxproj]C:\ProgramFiles(x86)\Micros

深度测评:ONLYOFFICE 桌面编辑器 v8.0新功能

目录前言一、PDF表单处理:提升办公效率二、RTL(从右到左)支持:满足不同语言习惯三、Moodle集成:教育行业的新助力四、本地界面主题:个性化办公体验五、性能优化与稳定性提升六、性能与稳定性七、总结与展望前言随着技术的不断进步和用户需求的日益多样化,ONLYOFFICE桌面编辑器迎来了其重要的更新——v8.0版本。此次更新不仅带来了众多新功能,还进一步优化了用户体验,满足了不同行业和场景下的办公需求。继ONLYOFFICE文档v8.0 后,适用于Linux、Windows和macOS的免费ONLYOFFICE桌面应用程序也进行了更新,带来RTL界面、本地界面主题、与Moodle的集成以及其

c++ - 使用 Visual C++ 2010 嵌入 v8

我正在尝试将v8引擎嵌入到我的C++应用程序中。我使用VisualC++2010。我已经使用以下命令成功构建了它:sconsenv="INCLUDE:C:\ProgramFiles\MicrosoftSDKs\Windows\v7.0A\Include;C:\ProgramFiles\MicrosoftVisualStudio10.0\VC\include,LIB:C:\ProgramFiles\MicrosoftSDKs\Windows\v7.0A\Lib;C:\ProgramFiles\MicrosoftVisualStudio9.0\VC\lib"然后,我:将v8/include

c# - 了解 Google V8 的架构

我不确定我是否理解V8的架构(是的,我已经阅读了它的文档)。在C#中使用v8sharp包装器我写这样的东西,例如:namespaceApp{classPoint{publicPoint(){}publicPoint(doublex,doubley){this.X=x;this.Y=y;}publicdoubleX{get;set;}publicdoubleY{get;set;}}}staticclassProgram{staticvoidMain(){//registeringwithv8sharpV8Engineengine=V8Engine.Create();engine.Regi

Ubuntu Server 20.04 系统安装(四):深度学习 GPU 环境配置(CUDA12.2驱动+CUDA Toolkit 12.2+cuDNN v8.9.7)

引言本文以Ubuntu20.04操作系统为例,演示如何配置深度学习GPU环境。一、NVIDIA显卡驱动的安装访问如下网址https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=20.04&target_type=runfile_local下载推荐的cuda并安装复制箭头所指处的命令到命令行wgethttps://developer.download.nvidia.com/compute/cuda/12.2.0/local_i

c++ - *v8::String::Utf8Value(args[0]->ToString()) 不返回 node.js 插件参数的字符串

我发现*v8::String::Utf8Value(args[0]->ToString())在Node0.8.232位上返回正确的字符串,但在Node0.8上不返回正确的字符串。8个64位。有人知道为什么吗?我的node.js插件看起来像这样:#defineBUILDING_NODE_EXTENSION#include#defineMAX_OUTPUT_BUF80extern"C"char*do_sqlsig(char*in);usingnamespacev8;HandleSqlsig(constArguments&args){HandleScopescope;char*c_arg,*

c++ - v8 |手动启动垃圾收集器

有没有办法在Google的V8引擎上手动启动垃圾收集器?我找不到任何引用资料。通常GC支持此功能。 最佳答案 您可以将v8::HEAP->CollectAllGarbage函数公开给通过命令标志--expose_gc全局JavaScript命名空间。然后只需调用gc();。您可以通过以下语句强制从C++进行垃圾回收:while(!V8::IdleNotification()){};引用资料:http://code.google.com/p/v8/source/browse/trunk/src/extensions/gc-extens