`
wiselyman
  • 浏览: 2099463 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
博客专栏
Group-logo
点睛Spring4.1
浏览量:82705
74ae1471-94c5-3ae2-b227-779326b57435
点睛Spring MVC4...
浏览量:131031
社区版块
存档分类
最新评论

chrome native client小试牛刀

 
阅读更多

一、环境准备

1、安装native client sdk

    下载地址: http://commondatastorage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/naclsdk_win.exe

下载后安装在C:\native_client_sdk_0_5_1052

本次试验的两个关键目录project_templates,examples.其中project_templates包含一个模板代码生成,examples中包含示例代码。

2、安装python

下载地址:http://www.python.org/ftp/python/2.7.2/python-2.7.2.msi
下载后安装到C:\Python27,在系统环境变量中的Path最后加上;C:\Python27

3、在chrome中启用native client

在chrome浏览器中地址栏输入about:flags 找到native client点击启动,重启浏览器;然后在浏览器地址栏输入about:plugins找到native client点击启动,无须重启浏览器

二、查看示例

进入C:\native_client_sdk_0_5_1052\examples,双击httpd.py,启动python的web server。

在chrome地址栏输入http://localhost:5103/index.html,可查看自带示例。

三、开发示例

1、创建工程

进入控制台:

>cd C:\native_client_sdk_0_5_1052\project_templates

> init_project.py -n helloworld -d ../examples (-n 名称 -d目录)

这时在examples文件下多了一个helloworld目录。改目录有:

helloworld.cc c++代码

helloworld.html 网页代码

scons.bat 编译C++

2、修改代码

打开helloworld.html,新增

function moduleDidLoad() {
      HelloTutorialModule = document.getElementById('hello_tutorial');
      HelloTutorialModule.addEventListener('message', handleMessage, false);
      updateStatus('SUCCESS');
      //Send a message to the NaCl module.
      HelloTutorialModule.postMessage('hello');
    }

 

 

 

 

 

HelloTutorialModule.postMessage('hello');将hello字符串提交给c++端处理

 

打开helloworld.cc

在#include之后添加

namespace {
// The expected string sent by the browser.
const char* const kHelloString = "hello";
// The string sent back to the browser upon receipt of a message
// containing "hello".
const char* const kReplyString = "hello from NaCl";
} // namespace

 

 

找到

// TODO(sdk_user): 1. Make this function handle the incoming message.

 

 

替换成

 

 if (!var_message.is_string())
    return;
  std::string message = var_message.AsString();
  pp::Var var_reply;
  if (message == kHelloString) {
    var_reply = pp::Var(kReplyString);
    PostMessage(var_reply);
  }

 

 

 


编译C++的native client module ,双击helloworld目录底下的scons.bat文件。

 

 

编译完成后,生成:

 

  • hello_tutorial_x86_32.nexe
  • hello_tutorial_x86_32_dbg.nexe
  • hello_tutorial_x86_64.nexe
  • hello_tutorial_x86_64_dbg.nexe

进入C:\native_client_sdk_0_5_1052\examples

双击httpd.py

在chrome浏览器中输入地址:http://localhost:5103/helloworld/helloworld.html

得到从native client module返回的hello from NaCl

 

分享到:
评论
2 楼 txbhcml 2014-06-04  
谢谢啊楼主分享  google访问太慢了 作为中国程序员效率打了折扣啊
1 楼 cheng830306 2011-12-16  
谢。。。。正在找这方面的资料。。。

相关推荐

    Native Client SDK 指导手册

    谷歌的chrome native client是一种为浏览器编译运行native代码开源的技术,出于维护系统的安全便捷的目的,创造出人们所期望的web应用程序.native技术远远超出了javascript的web编程范畴,使得开发者使用他们自己喜欢的...

    Chrome Extension 小试牛刀.docx

    Chrome Extension是一种强大...通过这次小试牛刀,我们可以看到,即使没有深入的编程背景,也能通过Chrome Extension实现一些实用的功能。对于IT专业人士来说,熟悉这一技术无疑能提升其在Web开发领域的技能和灵活性。

    native-client patch (Windows+Mac+Linux三合一).zip

    总的来说,这个"native-client patch"是为了帮助用户在Chrome浏览器中更流畅地使用IDM下载器,通过提供针对Windows、Mac和Linux的特定补丁,解决了因浏览器限制导致的兼容性问题,让用户可以不受网络限速的影响,...

    Native-Client patch for Windows

    然而,由于Chrome浏览器的安全策略和沙盒机制,某些第三方扩展可能无法在Chrome中正常运行,这就是为什么需要“Native-Client patch”的原因。原生客户端(Native Client)是Google开发的一种技术,允许编译后的C和...

    Google-Chrome-Native-Messaging:使用JSON在C ++应用程序和Google Chrome Native Messaging之间进行数据通信

    "Google-Chrome-Native-Messaging" 是一个技术主题,指的是Google Chrome浏览器的一项功能,允许本地应用程序(如C++应用)与Chrome扩展程序通过特定的接口进行通信,这种通信方式基于JSON格式的数据交换。...

    Native Client SDK+python27+vs2013英文语言包.zip

    **Native Client SDK** ...总之,这个压缩包提供了开发谷歌PPAPI插件所需的基础组件,包括Native Client SDK、Python 2.7和VS2013英文语言包,开发者可以通过这些工具创建高性能的Web插件,并在Chrome浏览器中运行。

    qbist:JavaScript Web Workers,Chrome Native Client(NaCl)和WebGL着色器的算法艺术作品

    JavaScript Web Workers,Chrome Native Client(NaCl)和WebGL着色器的算法艺术作品 这位前 -Kollege ,谁现在是一名数学教授,在1995年已决定一个很好的算法,通过色彩空间转换的图形是让人联想到现代艺术点菜...

    Web Api调试工具 Chrome插件Restlet-Client-REST-API-Testing

    Chrome插件Restlet Client - REST API Testing是一款非常实用的工具,专为Web API的调试和测试设计。这款插件支持多种HTTP方法(如GET、POST、PUT、DELETE等),并提供了丰富的功能,使得API测试过程更加高效和便捷...

    chrome插件--Rest client,接收POST, GET, PUT, DELETE请求

    目前发现chrome浏览器的advanced rest client的功能比较强大。因此介绍一下使用插件的安装与使用。谷歌浏览器advance-rest-client插件安装, 包含所有文档Advanced-REST-client3.1.9 和 启动所需的 definitions.json

    Chrome获取MAC地址扩展程序

    在描述中提到,这个扩展程序利用了C++编程语言来实现MAC地址的获取,然后通过Chrome的Native Messaging技术将获取到的数据传递给JavaScript,从而在浏览器环境中使用。 Chrome Native Messaging是一种通信机制,它...

    chrome cef client 可执行文件

    Chrome CEF Client是一款基于Chromium Embedded Framework(CEF)的可执行文件,主要用于开发和测试目的。CEF是一个开源项目,它允许开发者将Chromium浏览器引擎集成到自己的应用程序中,以实现自定义的浏览器功能...

    gameboy:针对Linux,OSX,asm.jsEmscripten和Chrome Native Client(NaCl)的Gameboy模拟器

    本文将深入探讨这个开源项目"gameboy",它支持多种平台,包括asm.js(一种JavaScript优化格式)、Emscripten(一个LLVM到JavaScript的编译器)以及Chrome的Native Client(NaCl)技术。 首先,让我们关注Gameboy...

    chrome-native-messaging:作为本机应用程序与 Chrome 扩展程序通信的包

    Chrome原生消息 作为本机应用程序与 Chromium 或 Google Chrome 扩展程序通信。 有关我的意思的更多信息...( let * ((buffer (chromium-native-messaging:read-from-ext *standard-input* )) (json-object (jsown:pa

    Accops Native Client-crx插件

    网页和本机应用程序可以使用与其他消息传递API相似的API通过Accops Native Client扩展来交换消息。 支持此功能的本机应用程序必须注册知道如何与扩展进行通信的本机消息传递主机。 Chrome会在一个单独的过程中启动...

    添加Microsoft Visual Studio 解决方案平台PPAPI、NACL、PNACL等的插件

    本文将详细介绍如何在Microsoft Visual Studio 2010到2015版本中添加PPAPI(Pepper Plugin API)、NACL(Native Client)和PNACL(Portable Native Client)这些插件,以增强开发能力,特别是对于Web应用程序和...

    osoasso:使用 Google Native Client 运行时的实验性基于浏览器的矢量数学应用程序

    它使用 Google Chrome 中的 Google [Native Client] ( ) 运行时。 它目前在运行。 要使用 Osoasso,您必须为所有 Web 应用程序启用 Native Client,即使是那些不是从 Chrome 网上应用店安装的应用程序。 为此,请...

Global site tag (gtag.js) - Google Analytics