Hi Chad,
Thank you for your prompt reply. : D
The second argument(char * data)'s content will be changed directly after
the method(encryptData/decryptData) called.
So second "data" argument is not only INPUT but also OUTPUT.(the others
[encryptType, Len] are INPUT only)
In your relay, you give me a great idea to deal with char point by wrapping
it.
And I write a test case for testing the idea.
------------------------------------------------------------
#include <emscripten/bind.h>
#include <iostream>
using namespace emscripten;
void test(char *s) {
s[0]=0x64; // change to lower case 'd'
}
bool charWrap(std::string &s) {
test(&s[0]);
return true;
}
int main () {
std::string data = "Data";
std::cout << data << "-"<< data.length()<<"\n";
charWrap(data);
std::cout << data << "-"<< data.length()<<"\n";
return 0;
}
------------------------------------------------
I run this in nodeJS and It works by wrapping it.
*Execute result:*
Data-4
data-4
But when I use embind to export charWrap function,I get error.
EMSCRIPTEN_BINDINGS(test) {
function("charWrap",&charWrap);
}
---------------------------------------------
emscripten/system/include/emscripten/bind.h:271:25: error: non-const lvalue
reference to type
'basic_string<[3 * ...]>' cannot bind to a temporary of type
'basic_string<[3 * ...]>'
internal::BindingType<Args>::fromWireType(args)...
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
emscripten/system/include/emscripten/bind.h:306:78: note: in instantiation
of member function
'emscripten::internal::Invoker<bool, std::__1::basic_string<char,
std::__1::char_traits<char>,
std::__1::allocator<char> > &>::invoke' requested here
reinterpret_cast<GenericFunction>(&Invoker<ReturnType,
Args...>::invoke),
^
cc.cpp:23:2: note: in instantiation of function template specialization
'emscripten::function<bool,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > &, >' requested
here
function("charWrap",&charWrap);
^
1 error generated.
ERROR root: compiler frontend failed to generate LLVM bitcode, halting
-------------------------------------
Any comments?
Thanks a lot again.
--
You received this message because you are subscribed to the Google Groups
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.