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

 

时间: 2024-09-10 22:33:57

chrome native client小试牛刀的相关文章

从Secure Shell看Chrome强大的Native Client

Google Chrome App Store中有一个强大的SSH client(可以代替PuTTY), 关键它是集成在网页之中,下面是截图: 它的强大正是Chrome强大的Native Client所造就的. Native Client可以理解为网页中可以与用户进程交互,从而有了其它plugin机制无法达到性能和功能.Goolge提供了完整的开发环境,比如: GNU-based toolchains: gcc, g++, as, ld, gdb, and other tools customi

native client (nacl)插件开发

问题描述 native client (nacl)插件开发 小弟最近在搞google的native client 插件开发, 下载了 native client 提供的sdk(pepper_41),浏览器用的是chrome 41, 操作系统是 Win7 64位, 在运行示例 NaCl C++ Tutorial: Getting Started 时,显示如下错误: Status: ERROR [NaCl module load failed: PnaclCoordinator: Compile p

native client能够调用第三方dll文件吗?

问题描述 native client能够调用第三方dll文件吗? 请求大神帮助:我刚学习native client相关知识,请求熟悉相关技术的大神指导下,native client如何调用第三方dll文件.谢谢了! 解决方案 native Client是指Chrome的吗? 不然可以用LoadLibrary等加载dll

Google发布Native Client首个开发工具包

Google的产品经理Christian Stefansen 今天在Chromium官方博客宣布Native Client首个软件开发工具包(SDK)发布,开发者已经可以通过这里下载到 Native Client 的开发工具包,自己创建Native Client应用程序. Native Client是Google主导的一个开源技术,它可以让开发者在浏览器中无缝且安全的执行原生编译代码以建立Web应用程序.本次发布的SDK已经包含了一系列的计算.音频以及2D原生客户端模块,Google还采取了大量

native client demo 无法加载本地native模块

问题描述 native client demo 无法加载本地native模块 你好,我刚学习native client,使用sdk里面的例子跑发现无法加载本地native 模块对象.自己按照你说的方法也写了一个demo,但是运行也是发现加载native module对象失败,该值为空.无法加载本地native模块对象.这是怎么回事呀?具体代码如下: 前端: <!DOCTYPE html> hello_tutorial<br> hello_tutorialModule = null;

无效的连接字符串属性-Microsoft SQL Server Native Client 10.0 错误 &amp;amp;#39;80004005&amp;amp;#39; 错误 困扰好几天了

问题描述 Microsoft SQL Server Native Client 10.0 错误 '80004005' 错误 困扰好几天了 Microsoft SQL Server Native Client 10.0 错误 '80004005' 无效的连接字符串属性 conn.asp,行 22 Provider 错误 '80004005' 未指定的错误 这样的错误 有谁见过吗 请高手指点一下 QQ: 1379918820

sql server native client安装失败,说什么操作系统不支持

问题描述 sql server native client安装失败,说什么操作系统不支持 在线等!!急呀!谢谢啦 解决方案 在下载安装之前,都要看一下安装文件对系统的要求,以及注意一下版本是否匹配.https://msdn.microsoft.com/zh-cn/library/ms131002(v=sql.100).aspx.aspx "") 解决方案二: 用 Windows Installer Clean Up来清理试下 或者超级兔子 优化大师 解决方案三: 你的i系统OS跟安装版

chrome谷歌浏览器安装运行安卓app教程

  chrome谷歌浏览器安装运行安卓app教程 Google在去年九月曾经发布了Chrome OS上的App Runtime(App Runtime for Chrome,也就是ARC),可以让安卓App运行在Chrome OS上.现在,Google将ARC带到了Chrome浏览器,无论你使用的是什么操作系统,只要安装了Chrome浏览器,都可以运行安卓App!ARC是通过Google开发的Native Client(NaCL) 运行在Windows.Mac.Linux和Chrome OS上的

谷歌将Chrome移至NativeClient安全平台

5月14日消息,据国外媒体报道,目前鲜为人知的谷歌安全项目News Native Client很可能成为该Chrome浏览器的基础. Native Client或简称NaCl,推出伊始就是作为一项允许用户安全快速地在互联网上运行下载的软件模块的技术.然而,谷歌此举将改变其现有功能,并且Chrome本身也将成为一个NaCl程序模块.谷歌Chrome项目工程小组副总裁Linus Upson在旧金山举行的Google I/O show上接受记者采访时表示:"我们想要将Chrome的更多部分地移至Nat