html:
<html>
<head>
<meta charset="utf-8">
<title>Wasm:demo</title>
</head>
<body>
<script>
Module = {};
Module.onRuntimeInitialized = function() {
var str = 'enc_string31415';
var strBuff = new TextEncoder().encode(str);
var strPtr = Module._malloc(strBuff.length + 1);
Module.HEAPU8.set(strBuff, strPtr);
Module.HEAPU8[strPtr + strBuff.length] = 0;
console.log('EncryptionAES:', Module._EncryptionAES("str", "aaab", "kkrr", strPtr));
Module._free(strPtr);
c++
EMSCRIPTEN_KEEPALIVE
int EncryptionAES(const char * strSrc, const char * gkey, const char* giv, char** str)
{
... ... ...
EM_ASM_({
var jsStr = Pointer_stringify($0);
jstr=jsStr;
}, *str);
return 1;
}
报错:
webassemencdec.wasm:0xa700 Uncaught (in promise) RuntimeError: memory access out of bounds
at webassemencdec.wasm:0xa700
at webassemencdec.wasm:0xa737
at webassemencdec.wasm:0x969c
at webassemencdec.wasm:0x12de
at Object._EncryptionAES (webassemencdec.js:611:12)
at Module.onRuntimeInitialized (demo.html:22:40)
at doRun (webassemencdec.js:4732:71)
at run (webassemencdec.js:4749:5)
at runCaller (webassemencdec.js:4693:19)
at removeRunDependency (webassemencdec.js:547:7)