I have been looking at Embind for the last few days. Thank you for the 
suggestion but I do not think it is what I am looking for (although I could 
be wrong there, there is so much reading to learn from).

Really my problem boils down to this: I want to create and manage the HTML 
elements (I am not interested in Canvas) via C++ in order to create a new 
head-only library that is the jQuery for C++/Emscripten. This is my goal, 
any way. Going to be real slow going since I am only one guy (will invite 
pull requests once I am happy with it). Especially if I remain stuck for a 
while here.

Thanks for any help and/or pointing me to more information!
On Friday, May 12, 2023 at 8:00:07 PM UTC-4 s...@google.com wrote:

> Your code looks like it will correctly create the element but you cannot 
> return a JS object to native code like that.   
>
> You can only return basic types like numbers unless you use some kind of 
> higher level binding system such as embind. 
>
> See 
> https://emscripten.org/docs/porting/connecting_cpp_and_javascript/Interacting-with-code.html
>  
> for more information on connecting the JS and C++ worlds.
>
> On Fri, May 12, 2023 at 4:22 PM Nicholas Ingrassellino <nick...@gmail.com> 
> wrote:
>
>>
>> Sorry, I do not see an edit button but I made a mistake. Here is the 
>> correction:
>> It spits out emscgT �� which I thought was a good sign. Turns out trying 
>> to create two different elements at two different times always says that 
>> when cast to either void* or char* (all over types just give me 0).
>> On Friday, May 12, 2023 at 6:53:40 PM UTC-4 Nicholas Ingrassellino wrote:
>>
>>> Good morning all! Or good afternoon or have a great night. You know, 
>>> wherever you are.
>>>
>>> I have the following code:
>>> void* createElement( const char* type ) {
>>>     return EM_ASM_PTR( {
>>>         return document.createElement( UTF8ToString( $0 ) );
>>>     }, type );
>>> };
>>>
>>> I am calling it like this:
>>> std::cout << static_cast< char* >( cppquery::html::createElement( "div" 
>>> ) ) << std::endl;
>>>
>>> It spits out emscgT �� which I thought was a good sign. Turns out trying 
>>> to create two different elements at two different times always says that 
>>> when cast to anything other than either void* or char*.
>>>
>>> What I am trying to do is crate an element (not yet added to the DOM), 
>>> store whatever (a pointer, I guess) to it, and use it later with other 
>>> C++-stored JavaScript element objects.
>>>
>>> I could just do all the work on the JavaScript side and JSON.stringyify 
>>> everything but that sounds like way too much.
>>>
>> -- 
>> 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 emscripten-disc...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/emscripten-discuss/caeb2610-9aaa-4c30-8d4a-4feaad7a0f0en%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/emscripten-discuss/caeb2610-9aaa-4c30-8d4a-4feaad7a0f0en%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
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 emscripten-discuss+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/emscripten-discuss/ad8364cf-62f3-45ba-9d64-eac491d8d28bn%40googlegroups.com.

Reply via email to