小编Bra*_*non的帖子

如何从C/C++访问WebAssembly线性内存

我正在编写一个小型C程序,旨在编译为ism w/emcc并在Web浏览器中运行.因为wasm导出的函数只能接受简单的数值作为参数输入和返回值,所以我需要在JavaScript API和编译的WebAssembly代码之间共享内存,以便访问更复杂的数据类型,如字符串或char数组.问题是我不能为我的生活弄清楚如何从我的C程序内部访问WebAssembly线性内存.

我的最终目标是能够在我的C程序中读取在JavaScript中初始化的字符串,然后在Web浏览器的JavaScript代码中读取在我的C程序中修改/初始化的字符串.

这是我正在尝试做的基本示例:

main.js

const importObject = {
  'env': {
    'memoryBase': 0,
    'tableBase': 0,
    'memory': new WebAssembly.Memory({initial: 256}),
    'table': new WebAssembly.Table({initial: 0, element: 'anyfunc'})
  }
}

// using the fetchAndInstantiate util function from
// https://github.com/mdn/webassembly-examples/blob/master/wasm-utils.js
fetchAndInstantiate('example.wasm', importObject).then(instance => {

      // call the compiled webassembly main function
      instance.exports._main()
      console.log(importObject.env.memory)
})
Run Code Online (Sandbox Code Playgroud)

example.c

int main() {
    // somehow access importObject.env.memory 
    // so that I can write a string to it
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这个问题让我成为了那里的一部分,但是,我仍然不明白如何从我的C代码中的WebAssembly内存缓冲区读/写.

emscripten webassembly

9
推荐指数
1
解决办法
2702
查看次数

Ajax请求成功但结果为空

我正在构建一个Google Chrome浏览器扩展程序,该扩展程序使用$.ajax请求将数据从网页发送到我的服务器(目前使用localhost托管).在扩展程序有权访问content_script.js的网页上下文(更多内容脚本)中执行的文件运行此代码:

//note: encode64String is assigned earlier in the script...

$.ajax({
type: "POST",
url: "http://localhost:8888/quartzsite/uploadendpoint.php",
type: "jsonp",
data: {img: encode64String},
contentType: "application/x-www-form-urlencoded;charset=UTF-8",
success: function(data){
    console.log("The ajax request succeeded!");
    console.log("The result is: ");
    console.log(data);
},
error: function(){
    console.log("The request failed");
}
});
Run Code Online (Sandbox Code Playgroud)

问题是Ajax请求是成功的,但data它返回的参数是空的...

运行代码后控制台如下所示:在此输入图像描述

目前该uploadedendpoint.php文件的内容是:

<?php
  header("Access-Control-Allow-Origin: *");
  echo 'This comes from php file'; die();
?>

<!DOCTYPE html>
<html>
<head>
    <title>Title of the document</title>
</head>

<body>
The content of …
Run Code Online (Sandbox Code Playgroud)

html javascript ajax jquery google-chrome-extension

6
推荐指数
1
解决办法
2万
查看次数

使用Emscripten将JavaScript数组字符串传递给C函数

我是WebAssembly和Emscripten的新手,我正在尝试将JavaScript中的字符串数组传递给C函数,以便进一步处理Module.cwrap(...).理想情况下,我还想从C返回一个字符串数组回JavaScript.

下面是我正在寻找的一些伪代码:

JS

const strings = ["foo", "bar", "fool", "gnar"]
const result = Module.cwrap("myCFunc", "array", ["array"])
console.log(result) // ["my", "transformed", "array"]
Run Code Online (Sandbox Code Playgroud)

C

char **myCFunc(char **input) {
    // do some processing. Specifically some md5 hashing...
    return output;
}
Run Code Online (Sandbox Code Playgroud)

我的猜测是我无法从JS到C函数自己传递多维数组,但是必须使用WebAssembly堆内存.我知道emscripten JS API支持这种类型的东西,但我还没有编写C语言,这种类型的指针操作的细节目前还超出了我的范围.

javascript c emscripten webassembly

6
推荐指数
1
解决办法
514
查看次数

在 GitHub README 中添加元标记是否使其更易于搜索

如果我<meta>在 GitHub README.md 文件中使用关键字和描述等标签,它会使 repo 对 SEO 更友好吗?

seo github meta-tags

5
推荐指数
1
解决办法
3899
查看次数

Kubernetes名称空间的最大数量是多少?

Kubernetes集群是否支持最大数量的命名空间?我的团队正在设计一个通过K8来运行用户工作负载的系统,我们正在考虑为每个用户使用一个名称空间在集群中提供逻辑分段,但是我们不想限制可以使用我们服务的用户数量。

我们正在使用Amazon的EKS托管Kubernetes服务和Kubernetes v1.11。

kubernetes kubernetes-namespace amazon-eks

5
推荐指数
1
解决办法
673
查看次数

替换与正则表达式不匹配的字符串部分

我试图使用JavaScript 替换与正则表达式模式匹配的字符串部分.这在功能上等同于使用-vGNU grep中的标志来反转结果.这是一个例子:

// I want to replace all characters that don't match "fore" 
// in "aforementioned" with "*"

'aforementioned'.replace(new RegExp(pattern, 'i'), function(match){
    //generates a string of '*' that is the length of match
    return new Array(match.length).join('*');
});
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个正则表达式pattern.这将是相反的(fore).我已经四处搜索但未能实现任何相关问题的答案以满足我的需求.无论如何,这是一个列表,也许它会指出我们正确的方向:

javascript regex replace

3
推荐指数
1
解决办法
2234
查看次数

Mysqli查询不起作用两次

我不能让我的Mysqli查询同时工作.如果我在我的html中注释掉一个函数,则另一个函数正确执行,反之亦然.

function all_posts() {
    require_once 'database.inc.php';
    $mysqli = mysqli_connect($host, $username, $password, $database);
    $query = mysqli_query($mysqli, "SELECT variable_name, post_name, post_date, post_display FROM blog_posts ORDER BY id DESC LIMIT 5");

    if (!$query)
        echo mysqli_error();

    while ($results = mysqli_fetch_assoc($query)) {

        $post_name = $results['post_name'];
        $post_date = $results['post_date'];
        $post_display = $results['post_display'];
        $variable_name = $results['variable_name'];

        echo "<a href='posts.php?post={$variable_name}'>";
        echo "<div class='entry'>";
        echo "<div class='entry_header'>";
        echo "<h2>{$post_name}</h2>";
        echo "<h3>{$post_date}</h3>";
        echo "</div>";
        echo "<p>{$post_display}</p>";
        echo "</div>";
        echo "</a>";
    }

    mysqli_free_result();
}

function all_sidebar_posts() {

    require_once 'database.inc.php';
    $mysqli = …
Run Code Online (Sandbox Code Playgroud)

php database mysqli

2
推荐指数
1
解决办法
3898
查看次数

成员没有默认构造函数

我是openFrameworks/C++的新手,但已经使用Processing/Java一段时间了.我无法实例化我在testApp头中创建的类的对象.

它抛出错误:

Implicit default constructor for 'testApp' must explicitly initialize the member 'currentSeq' which does not have a default constructor.
Run Code Online (Sandbox Code Playgroud)

这是我的Sequence.h文件:

#pragma once
#include "ofMain.h"

class Sequence{

public:
    Sequence(long _start, long _stop){
        start = _start;
        stop = _stop;
    }

    long start;
    long stop;

};
Run Code Online (Sandbox Code Playgroud)

这是我的testApp.h:

#pragma once

#include "ofMain.h"
#include "sequence.h"

class testApp : public ofBaseApp{
    public:

        void setSequences();
        bool needsNewSeq();

        void setup();
        void update();
        void draw();

        void keyPressed(int key);
        void keyReleased(int key);
        void mouseMoved(int x, int y);
        void mouseDragged(int …
Run Code Online (Sandbox Code Playgroud)

c++ oop openframeworks

1
推荐指数
1
解决办法
6611
查看次数