Torna indietro   Hardware Upgrade Forum > Software > Programmazione

realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole!
realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole!
Hogwarts arriva in fascia media grazie a realme, con una special edition che unisce la Quadra Light-Sensing Color-changing Tech, un baule in stile Hogwarts Express pieno di collezionabili e una scheda tecnica sostanzialmente identica al 16 Pro di partenza: ecco cosa cambia davvero, come si comporta nell'uso quotidiano e quanto vale in base al prezzo di 699,99 euro
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-04-2008, 15:50   #1
Napalm
Senior Member
 
L'Avatar di Napalm
 
Iscritto dal: May 2000
Messaggi: 1135
[JAVA] Usare DLL C#

Salve,
io ho un DLL scritta con c# ma devo usarla in java; fare il porting è un suicidio perché è molto complessa quindi ci metterei una vita non avendo la sicurezza che funziona al 100%.
Vorrei sapere se esiste un modo e quindi una guida che spiega l'uso delle DLL con java.
Grazie

NapalM
__________________
Quote:
Originariamente inviato da trallallero Guarda i messaggi
Gli anti-fascisti, quelli fascisti coi fascisti, "i diversamente fascisti" (cit. "Napalm"), non meritano il mio rispetto
Napalm è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2008, 16:04   #2
yorkeiser
Senior Member
 
L'Avatar di yorkeiser
 
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
Per richiamare una dll da Java puoi usare le Java Native Interface (googla per jni)
__________________
Il sole è giallo
yorkeiser è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2008, 16:09   #3
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Dovresti riuscire a farlo in diversi modi:
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2008, 09:12   #4
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da yorkeiser Guarda i messaggi
Per richiamare una dll da Java puoi usare le Java Native Interface (googla per jni)
Solo che una DLL C# è tutto fuorché Native
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2008, 11:49   #5
Napalm
Senior Member
 
L'Avatar di Napalm
 
Iscritto dal: May 2000
Messaggi: 1135
Grazie delle risposte.

Mi sono documentato e mi pare di capire con JNI devo cmq scrivere una classe in java con i metodi che dovrei usare, il fatto è che fra variabili metodi e classi della DLL ci metterei na vita a scriverle.

Boh, ora il fatto è che se faccio questo client in C# non sò se posso usare i webservice del server java... ora è client/server java ed èok, il problema è che questi nuovi apparati che devo pilotare hanno solo librerie c# quindi sono panato

Napalm
__________________
Quote:
Originariamente inviato da trallallero Guarda i messaggi
Gli anti-fascisti, quelli fascisti coi fascisti, "i diversamente fascisti" (cit. "Napalm"), non meritano il mio rispetto
Napalm è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2008, 12:31   #6
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da Napalm Guarda i messaggi
Boh, ora il fatto è che se faccio questo client in C# non sò se posso usare i webservice del server java... ora è client/server java ed èok, il problema è che questi nuovi apparati che devo pilotare hanno solo librerie c# quindi sono panato

Napalm
Potresti spiegare di che tipo di assembly si tratta e quali sono le funzionalità?

Perchè hai tirato in ballo i webservice e in questo caso potresti scrivere semplicemente un client C# che dialoghi con webservice Java o viceversa.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2008, 13:05   #7
Napalm
Senior Member
 
L'Avatar di Napalm
 
Iscritto dal: May 2000
Messaggi: 1135
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Potresti spiegare di che tipo di assembly si tratta e quali sono le funzionalità?
In pratica sono classi che servono per la gestione di un hardware che permette la lettura di tag rfid. Abbiamo sempre usato classi native in java, il problema è che nuovi reader hanno solo classi in c# quindi non si possono "amalgamare" con le nostre in java.

Quote:
Originariamente inviato da tomminno Guarda i messaggi
Perchè hai tirato in ballo i webservice e in questo caso potresti scrivere semplicemente un client C# che dialoghi con webservice Java o viceversa.
In pratica il client è formato da un thread che legge i dati (quindi connessione all'hardware e lettura) e un thread che manda queste letture al server tramite webservices il tutto scritto in java.
La mia domanda da ignorante è appunto la possibilità di scrivere la parte client che si connette al webservices in c# anche se chi riceve o manda la richiesta è un server java.

NapalM
__________________
Quote:
Originariamente inviato da trallallero Guarda i messaggi
Gli anti-fascisti, quelli fascisti coi fascisti, "i diversamente fascisti" (cit. "Napalm"), non meritano il mio rispetto
Napalm è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2008, 15:27   #8
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da Napalm Guarda i messaggi
In pratica sono classi che servono per la gestione di un hardware che permette la lettura di tag rfid. Abbiamo sempre usato classi native in java, il problema è che nuovi reader hanno solo classi in c# quindi non si possono "amalgamare" con le nostre in java.
Certo che sei fortunato ad avere un SDK per i tag rfid, gli hardware che ho usato io avevano un foglio dove erano spiegati (molto male) i comandi supportati

Quote:
In pratica il client è formato da un thread che legge i dati (quindi connessione all'hardware e lettura) e un thread che manda queste letture al server tramite webservices il tutto scritto in java.
La mia domanda da ignorante è appunto la possibilità di scrivere la parte client che si connette al webservices in c# anche se chi riceve o manda la richiesta è un server java.

NapalM
In C# i webservice sono molto semplici, apri la soluzione e con il tasto desto sul progetto esegui un "Add Web Reference...", inserisci la url del webservice, ti scegli un namespace "umano", a questo punto hai già tutto quello che ti serve per richiamare comodamente il webservice.

Però i webservice sono strumenti "monodirezionali", il client non può ricevere qualcosa dal server se non la risposta ad una richiesta, dato che i messaggi SOAP transitano sopra l'HTTP.

Altrimenti ti serve una tradizionale connessione client-server, a quel punto sei te che conosci il protocollo di comunicazione con il server a dover implementare un client che parli la lingua corretta.
In ogni caso non c'è problema.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2008, 15:56   #9
Napalm
Senior Member
 
L'Avatar di Napalm
 
Iscritto dal: May 2000
Messaggi: 1135
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Certo che sei fortunato ad avere un SDK per i tag rfid, gli hardware che ho usato io avevano un foglio dove erano spiegati (molto male) i comandi supportati
Materiale della FEIG se conosci, le librerie in java soffrono di qualche baco ma meglio di niente. Ho provato a partire dalla creazione della connessione seriale e poi a dare i comandi a mano ma non ci capisco nulla.

Quote:
Originariamente inviato da tomminno Guarda i messaggi
In C# i webservice sono molto semplici, apri la soluzione e con il tasto desto sul progetto esegui un "Add Web Reference...", inserisci la url del webservice, ti scegli un namespace "umano", a questo punto hai già tutto quello che ti serve per richiamare comodamente il webservice.

Però i webservice sono strumenti "monodirezionali", il client non può ricevere qualcosa dal server se non la risposta ad una richiesta, dato che i messaggi SOAP transitano sopra l'HTTP.

Altrimenti ti serve una tradizionale connessione client-server, a quel punto sei te che conosci il protocollo di comunicazione con il server a dover implementare un client che parli la lingua corretta.
In ogni caso non c'è problema.
proverò questa implementazione, il fatto che cmq mi devo scrivere del codice c# partendo dalla vecchia applicazione client java

Grazie cmq

NapalM
__________________
Quote:
Originariamente inviato da trallallero Guarda i messaggi
Gli anti-fascisti, quelli fascisti coi fascisti, "i diversamente fascisti" (cit. "Napalm"), non meritano il mio rispetto
Napalm è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2008, 16:36   #10
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da Napalm Guarda i messaggi
Materiale della FEIG se conosci, le librerie in java soffrono di qualche baco ma meglio di niente. Ho provato a partire dalla creazione della connessione seriale e poi a dare i comandi a mano ma non ci capisco nulla.
Per quanto riguarda i comandi, sono tutti binari seguiti dal CRC, il problema sono le risposte, differenti da comando a comando, ognuna con la sua logica.

Quote:
proverò questa implementazione, il fatto che cmq mi devo scrivere del codice c# partendo dalla vecchia applicazione client java

Grazie cmq

NapalM
Se hai davvero a che fare con i webservice non hai bisogno di partire dal client Java, se invece hai un semplice server (non webservice) allora si devi riscriverti tutta l'implementazione del protocollo di comunicazione che usavi prima.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2008, 16:45   #11
Napalm
Senior Member
 
L'Avatar di Napalm
 
Iscritto dal: May 2000
Messaggi: 1135
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Per quanto riguarda i comandi, sono tutti binari seguiti dal CRC, il problema sono le risposte, differenti da comando a comando, ognuna con la sua logica.
boh, io ho provato a connettermi alla seriale tramite le rxtx però non ho neanche capito se la connessione è andata a buon fine o no.
Con un semplice relè su RS232, connettevo la seriale con rxtx.. aprivo un input e output stream, inviavo il comando con la output.write, avevo la sua risposta ed il gioco è fatto.
Penso che invece con i reader la questione sia più complessa, il fatto che oltre al comando in se (tipo :0x1201) bisogna dare anche i flag e vari altri dati.
Ho provato a vedere le classi c# per provare a riscriverle in java, ma sono molto complesse.

Quote:
Originariamente inviato da tomminno Guarda i messaggi
Se hai davvero a che fare con i webservice non hai bisogno di partire dal client Java, se invece hai un semplice server (non webservice) allora si devi riscriverti tutta l'implementazione del protocollo di comunicazione che usavi prima.
Mi hai frainteso, è che devo "copiare" il client in java per portarlo in c#... è quella la lunghezza del lavoro.

NapalM
__________________
Quote:
Originariamente inviato da trallallero Guarda i messaggi
Gli anti-fascisti, quelli fascisti coi fascisti, "i diversamente fascisti" (cit. "Napalm"), non meritano il mio rispetto
Napalm è offline   Rispondi citando il messaggio o parte di esso
Old 26-05-2008, 11:08   #12
Napalm
Senior Member
 
L'Avatar di Napalm
 
Iscritto dal: May 2000
Messaggi: 1135
Quote:
Originariamente inviato da tomminno Guarda i messaggi


In C# i webservice sono molto semplici, apri la soluzione e con il tasto desto sul progetto esegui un "Add Web Reference...", inserisci la url del webservice, ti scegli un namespace "umano", a questo punto hai già tutto quello che ti serve per richiamare comodamente il webservice.

Però i webservice sono strumenti "monodirezionali", il client non può ricevere qualcosa dal server se non la risposta ad una richiesta, dato che i messaggi SOAP transitano sopra l'HTTP.
L'ho fatto, ho aggiunto il riferimento web, ho visto i files che mi ha generato.
A questo punto istanzio la classe creata, chiamo il metodo ma mi ritorna questo errore:
"richiesta non riuscita con codice stato HTTP 405: metodo non consentito".
mentre chiamandolo in java funziona.
Che problema può essere?

NapalM
__________________
Quote:
Originariamente inviato da trallallero Guarda i messaggi
Gli anti-fascisti, quelli fascisti coi fascisti, "i diversamente fascisti" (cit. "Napalm"), non meritano il mio rispetto
Napalm è offline   Rispondi citando il messaggio o parte di esso
Old 26-05-2008, 11:26   #13
Napalm
Senior Member
 
L'Avatar di Napalm
 
Iscritto dal: May 2000
Messaggi: 1135
Bah, che errore da cane! Il files .cs generato avevo un riferimento web errato per cui mi dava quell'errore...

NapalM
__________________
Quote:
Originariamente inviato da trallallero Guarda i messaggi
Gli anti-fascisti, quelli fascisti coi fascisti, "i diversamente fascisti" (cit. "Napalm"), non meritano il mio rispetto
Napalm è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole! realme 16 Pro Harry Potter Edition: il nuovo mid...
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Celle perovskite-silicio al 34% grazie a...
Apple prepara il suo nuovo hub intellige...
La Cadillac Lyriq-V elettrica sbarca in ...
Amazon: arriva l'opzione per aggiungere ...
Un developer usa Claude Code per creare ...
Relativity Space annuncia i progressi ne...
Il nuovo Resident Evil supera ogni prece...
Hai appena sconfitto un boss e parte lo ...
Ray tracing anche senza montagne di VRAM...
TSMC prepara il processo a 1,4 nm: quatt...
Diablo V arriverà nel 2029: Blizzard spi...
Il nuovo CTO di Disney arriva da Charact...
GDPR, Google multata per 403 milioni di ...
Quattro token al secondo senza GPU: GLM ...
iPhone 18 Pro, sostituire la batteria fu...
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: 15:04.


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