Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

205
Visualizações
Emscripten Embind métodos de espacio de nombres dentro del objeto

He estado experimentando con Emscripten para llevar potencialmente una API de C++ al ensamblado web.

Pude exportar con éxito funciones y clases individuales de mi API al módulo JS, pero no estoy tan seguro de cómo incrustar espacios de nombres completos de métodos como sus propios objetos JS.

Digamos que tengo NamespaceA y NamespaceB (ejemplo aproximado a continuación), ¿cómo puedo "incorporar" los métodos en estos espacios de nombres a sus propios objetos JS dentro del enlace principal?

 // Example namespace A #include "myheaderfile_a.h" uint8_t NamespaceA::functionA(uint8_t a, uint8_t b) { return a+b; } uint8_t NamespaceA::functionB(uint8_t a, uint8_t b) { return a+b*2; } uint8_t NamespaceA::functionC(uint8_t a, uint8_t b) { return b - a; }
 // Example namespace B #include "myheaderfile_b.h" uint8_t NamespaceB::functionA(uint8_t a, uint8_t b) { return a+b; } uint8_t NamespaceB::functionB(uint8_t a, uint8_t b) { return a+b*2; } uint8_t NamespaceB::functionC(uint8_t a, uint8_t b) { return b - a; }

Estoy buscando una estructura de uso de la siguiente manera en Javascript:

 const MyModule = require("binding.js"); MyModule.addOnPostRun(() => { console.log(MyModule); // NAMESPACE A MyModule.NamespaceA.functionA(6, 4); MyModule.NamespaceA.functionB(6, 4); MyModule.NamespaceA.functionC(6, 4); // NAMESPACE B MyModule.NamespaceB.functionA(6, 4); MyModule.NamespaceB.functionB(6, 4); MyModule.NamespaceB.functionC(6, 4); });

¿Cómo lograría esto?

Intenté exportar un value_object pero parece que no puedo usar un espacio de nombres como tipo. Incluso entonces, no creo que sea correcto intentar exportar una función como un campo:

 EMSCRIPTEN_BINDINGS() { value_object<NamespaceA>("NamespaceA") .field("functionA", &NamespaceA::functionA) .field("functionB", &NamespaceA::functionB) .field("functionC", &NamespaceA::functionC) };
about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda