Lato negativo della scrittura JNI con C ++ per una libreria in C?

0

Sfondo:

  1. Sono nuovo nel mondo JNI e non un programmatore C esperto.
  2. Voglio scrivere un JNI per connettere un toolkit Java e una libreria in C (non solo per velocità, ma anche per buone funzionalità)

Ho visto del codice usando C ++ per fare questo tipo di lavoro. E dal momento che la gestione delle risorse in C richiede un controllo manuale più esplicito, vorrei provare con C ++.

Domanda: Il mix di C ++ con C qui causerebbe problemi che non riuscivo a vedere?

    
posta CloudyTrees 01.08.2016 - 23:27
fonte

2 risposte

1

Il wrapper C ++ di JNI è facile da usare e il suo orientamento agli oggetti è ben progettato. Personalmente trovo che la relazione tra gli oggetti JNI sia in qualche modo più visibile e comprensibile rispetto all'interfaccia C (vedi esempi qui).

Come hai sottolineato, se stai facendo un lavoro pesante in C ++ per chiamare alcune funzionalità Java, potresti elaborare un po 'di più il design e usare costruttori / distruttori per automatizzare alcune attività che dovresti scrivere manualmente in C.

Tuttavia, se stai facendo le cose al contrario, chiamando le funzioni native C / C ++ da Java, il C ++ non ti porterà un grande vantaggio: questa interfaccia di chiamata è davvero progettata per chiamare le funzioni C (o le funzioni statiche di C ++ con esposto come "C"). Quindi, se si desidera utilizzare le classi C ++, è necessario organizzare il collegamento tra il mondo statico e gli oggetti creati sul lato C ++.

Ovviamente entrambi possono perfettamente interagire.

    
risposta data 02.08.2016 - 00:09
fonte
1

No, non lo sarebbe.

Ho un'app per Android la cui funzionalità di base è in 8.000 righe di C ++ (condivisa con altre piattaforme) con un'interfaccia utente Java avvolta attorno usando JNI e non ci sono stati problemi.

Quindi, se preferisci C ++ a C, usalo.

    
risposta data 01.08.2016 - 23:53
fonte

Leggi altre domande sui tag