Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing"
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing"
La nuova Insta360 X6 introduce sensori Sony da 1/1.1" e un SoC Triple AI a 4nm. Analizziamo le riprese 8K, il primo Dolby Vision nativo a 10-bit nel settore sferico e l'innovativo flusso di lavoro diretto sulla futura versione 22 di DaVinci Resolve.
Due settimane con Dacia Spring 2026: novità, consumi, autonomia reale e test bagagli
Due settimane con Dacia Spring 2026: novità, consumi, autonomia reale e test bagagli
Dopo due settimane trascorse al volante della Dacia Spring 2026 possiamo raccontarvi tutto, dalle novità di motore e batteria, fino ai consumi in tutti le situazioni, compresa l'autonomia reale ad alta velocità
AORUS GeForce RTX 5080 INFINITY WOOD 16G: una scheda video diversa dalle altre
AORUS GeForce RTX 5080 INFINITY WOOD 16G: una scheda video diversa dalle altre
Abbiamo messo alla prova la nuova AORUS GeForce RTX 5080 INFINITY WOOD 16G, una delle interpretazioni più particolari della GPU NVIDIA Blackwell. Prestazioni, frequenze operative, temperature, consumi e margini di overclock sono stati confrontati con altre RTX 5080 custom e con la Founders Edition. Il design in legno è solo uno degli elementi distintivi di una scheda che punta a ritagliarsi uno spazio nella fascia più alta del mercato.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 05-09-2005, 16:12   #1
ambuotiz
Bannato
 
Iscritto dal: Jan 2002
Città: Roma
Messaggi: 1130
Problema con le JNI

Ho un problema con le JNI quando scrivo il codice sorgente C
questa è una parte del codice sorgente C (ci metto anche i numeri di riga per maggior chiarezza.

4. JNIEXPORT jint JNICALL Java_Ipktgen_Pktgen
5. (JNIEnv *, jobject obj, jint ttl, jlong d_ip, jintArray payload);
6. {

durante la compilazione mi da questo errore:

pktgen.c:5: error: syntax error before '{' token
ambuotiz è offline   Rispondi citando il messaggio o parte di esso
Old 05-09-2005, 20:25   #2
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
togli il punto e virgola in fondo alla riga.
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2005, 12:00   #3
ambuotiz
Bannato
 
Iscritto dal: Jan 2002
Città: Roma
Messaggi: 1130
Quote:
Originariamente inviato da kingv
togli il punto e virgola in fondo alla riga.
hai ragione.
Ora sono riuscito a compilare tutto (non pensavo di riuscirci) mi rimangono solo un paio di warning:

pktgen.c: In function `main':
pktgen.c:112: warning: control reaches end of non-void function

credo che la parte di codice che da errore sua questa:

110. return 0;
111. }
112. int main() {}
ambuotiz è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2005, 12:48   #4
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
anziché

int main() {}

prova a scrivere

int main() {
return 0;
}
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2005, 13:41   #5
ambuotiz
Bannato
 
Iscritto dal: Jan 2002
Città: Roma
Messaggi: 1130
Posto tutto il codice:

#include <stdio.h>
#include <libnet.h>
#include "Ipktgen.h"


JNIEXPORT jint JNICALL Java_Ipktgen_Pktgen
(JNIEnv *env, jobject obj, jint ttl, jlong d_ip, jintArray payload)
{
struct input_struct
{
u_long s_ip; /* source ip address */
u_long d_ip; /* destination ip address */
u_char *data; /* ip payload */
u_short data_size; /* ip payload size */
}
input;

u_short h_lenght; /* header lenght */
short n; /* byte wrote */
char err_buf[LIBNET_ERRBUF_SIZE]; /* error buffer */

libnet_t *l; /* libnet context handler */

/* set default */
input.d_ip=0;
input.data_size=0;
input.data=NULL;

/* initialize libnet_t* */
if ((l=libnet_init(LIBNET_RAW4, /* injection type */
NULL, /* network interface */
err_buf))==NULL) /* error buffer */
{
fprintf (stderr, "Error: %s\n", err_buf);
return -1;
}


/* build ipv4 header */
if (libnet_build_ipv4
(
h_lenght+input.data_size,/* len */
0, /* tos */
0x200, /* id */
0, /* frag */
ttl, /* ttl */
IPPROTO_TCP, /* transport protocol */
0, /* sum */
input.s_ip, /* source address */
d_ip, /* destination address */
NULL, /* ip payload */
0, /* ip payload size */
l, /* libnet context */
0 /* we don't need ptag */
)==-1)
{

fprintf (stderr, "Error %s\n", libnet_geterror(l));
return 1;
}

printf ("* IP header builded\n");

/* write packet */
if ((n=libnet_write(l))==-1)
fprintf (stderr, "Error %s\n", libnet_geterror(l));

printf ("* Packet correctly wrote on wire: %d bytes\n", n);

/* destroy all */
libnet_destroy(l);

return 0;
}
int main() {}
ambuotiz è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2005, 16:43   #6
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
se vuoi che lo compiliamo ci serve anche il .h

il main toglilo non ne hai bisogno
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2005, 19:36   #7
ambuotiz
Bannato
 
Iscritto dal: Jan 2002
Città: Roma
Messaggi: 1130
Quote:
Originariamente inviato da kingv
se vuoi che lo compiliamo ci serve anche il .h

il main toglilo non ne hai bisogno
Il .h è questo:

/* DO NOT EDIT THIS FILE - it is machine generated */
#include "jni.h"
/* Header for class Ipktgen */

#ifndef _Included_Ipktgen
#define _Included_Ipktgen
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: Ipktgen
* Method: Pktgen
* Signature: (IJ[I)I
*/
JNIEXPORT jint JNICALL Java_Ipktgen_Pktgen
(JNIEnv *, jobject, jint, jlong, jintArray);

#ifdef __cplusplus
}
#endif
#endif
ambuotiz è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2005, 23:35   #8
ambuotiz
Bannato
 
Iscritto dal: Jan 2002
Città: Roma
Messaggi: 1130
se tolgo il main mi da questo errore:
root@localhost codice]# gcc -Wall -o2 pktgen.c -o pktgen -lnet
/usr/lib/gcc/i586-mandrake-linux-gnu/3.4.1/../../../crt1.o(.text+0x18): In funct ion `_start':
../sysdeps/i386/elf/start.S:98: undefined reference to `main'
collect2: ld returned 1 exit status
ambuotiz è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2005, 07:57   #9
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
devi compilare una shared library, non un eseguibile....

gcc pktgen.c -o pktgen.so -shared -I/usr/java/j2sdk1.4.2_04/include -I/usr/java/j2sdk1.4.2_04/include/linux
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2005, 09:09   #10
ambuotiz
Bannato
 
Iscritto dal: Jan 2002
Città: Roma
Messaggi: 1130
Quote:
Originariamente inviato da kingv
devi compilare una shared library, non un eseguibile....

gcc pktgen.c -o pktgen.so -shared -I/usr/java/j2sdk1.4.2_04/include -I/usr/java/j2sdk1.4.2_04/include/linux
Se scrivo così mi compila lo stesso:
gcc -c -Wall -o2 pktgen.c -o pktgen
non conosco bene tutti i parametri di gcc, cosa sambia scrivendo come ho fatto io?
ambuotiz è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2005, 09:44   #11
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Quote:
Originariamente inviato da ambuotiz
Se scrivo così mi compila lo stesso:
gcc -c -Wall -o2 pktgen.c -o pktgen
non conosco bene tutti i parametri di gcc, cosa sambia scrivendo come ho fatto io?

se usi '-c' come hai fatto tu non passa per lo stadio di linking.
per compilare compila, ma ottieni un file oggetto cui non puoi accedere da java via jni.
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2005, 10:03   #12
ambuotiz
Bannato
 
Iscritto dal: Jan 2002
Città: Roma
Messaggi: 1130
ho un problema che non so come risolvere: devo passare un array di interi java al codice C. Per farlo ho scritto questo codice:

jsize len = (*env)->GetArrayLength(env, payload); //payload è il nome dell'array java di lunghezza len
jint *body = (*env)->GetIntArrayElements(env, payload, 0);
int cpayload [len]; //creo l'array C
int i;
for (i=0; i<len; i++)
{
cpayload[i] = body[i]; //copio i valori dell'array java nell'array C
}

input.d_ip=0;
input.data_size=len;
input.data=(u_char)*body; //questa riga mi da errore

l'errore che mi da il compilatore è questo:
warning: assignment makes pointer from integer without a cast

P.S. la variabile data è definita in questo modo:
u_char *data;
ambuotiz è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing" Insta360 X6: Dolby Vision, 8K e montaggio "...
Due settimane con Dacia Spring 2026: novità, consumi, autonomia reale e test bagagli Due settimane con Dacia Spring 2026: novit&agrav...
AORUS GeForce RTX 5080 INFINITY WOOD 16G: una scheda video diversa dalle altre AORUS GeForce RTX 5080 INFINITY WOOD 16G: una sc...
Hyundai Ioniq 9: dopo due settimane di test non avremmo voluto restituirla Hyundai Ioniq 9: dopo due settimane di test non ...
LG UltraGear evo GM9: 27 pollici, 5K, Mini LED e Dual Mode LG UltraGear evo GM9: 27 pollici, 5K, Mini LED e...
DeepSeek V4 Pro 0813 rilasciato: la beta...
Un braccio meccanico motorizzato trasfor...
SignalTrace: il sistema di Leonardo che ...
Meta rimuove 756.000 account under 16 in...
Twitch addestrerà l'IA generativa di Ama...
MOVA P50 Pro Ultra crolla a 449€ su Amaz...
Il trucco preferito dagli hacker per rub...
Sedie gaming ed ergonomiche SIHOO in off...
Microrobot nel terreno: un magnete li ri...
Uno studio smonta il mito dell'IA verde ...
Claude in Chrome diventa una sessione Co...
Edge e Chrome dicono addio a uBlock Orig...
Due motori, 1.600 cavalli, niente emissi...
Google fa sparire il pulsante Cerca ad a...
Le migliori offerte Amazon: Bose a 99€, ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:55.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v