Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente bannato
    Registrato dal
    Sep 2012
    Messaggi
    465

    [C++] Creare una DLL con cl.exe

    Dovrei creare una DLL con cl.exe. I file da includere sono i seguenti:

    NativeDemo.h

    codice:
    /* DO NOT EDIT THIS FILE - it is machine generated */ 
    #include <jni.h> 
    /* Header for class NativeDemo */ 
     
    #ifndef _Included_NativeDemo 
    #define _Included_NativeDemo 
    #ifdef _ _cplusplus 
    extern "C" { 
    #endif 
    /* 
     * Class:     NativeDemo 
     * Method:    test 
     * Signature: ()V 
     */ 
    JNIEXPORT void JNICALL Java_NativeDemo_test 
       (JNIEnv *, jobject); 
     
    #ifdef _ _cplusplus 
    } 
    #endif 
    #endif
    NativeDemo.c

    codice:
    /* This file contains the C version of the 
       test() method. 
    */ 
     
    #include <jni.h> 
    #include "NativeDemo.h" 
    #include <stdio.h> 
     
    JNIEXPORT void JNICALL Java_NativeDemo_test(JNIEnv *env, jobject obj) 
    { 
      jclass cls; 
      jfieldID fid; 
      jint i; 
     
      printf("Starting the native method.\n"); 
      cls = (*env)->GetObjectClass(env, obj); 
      fid = (*env)->GetFieldID(env, cls, "i", "I"); 
     
      if(fid == 0) { 
        printf("Could not get field id.\n"); 
        return; 
      } 
     
      i = (*env)->GetIntField(env, obj, fid); 
      printf("i = %d\n", i); 
      (*env)->SetIntField(env, obj, fid, 2*i); 
      printf("Ending the native method.\n"); 
    }
    e la riga di codice che non funziona è la seguente:

    codice:
    Cl /LD NativeDemo.c
    qui sotto trovate l'errore:

    codice:
    Microsoft (R) C/C++ Optimizing Compiler versione 17.00.50727.1 per x64
    Copyright (C) Microsoft Corporation. Tutti i diritti riservati.
    
    NativeDemo.c
    NativeDemo.c(5) : fatal error C1034: jni.h: nessun percorso impostato per i file di inclusione
    Su questo forum mi sono state consigliate altre soluzioni come:

    codice:
    Cl /LD /I C:\glassfish3\jdk7\include\ NativeDemo.c
    ma comunque inefficaci. Credo che mi resti da capire come specificare in maniera corretta il percorso verso jni.h e jni_md.h.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Ecco... C++ non ha nulla a che vedere con "Visual Basic e .NET Framework".

    Sposto nell'area "Programmazione".


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente bannato
    Registrato dal
    Sep 2012
    Messaggi
    465
    Ho provato anche questo:

    codice:
    Cl /LD 
    /I C:\glassfish3\jdk7\include\ 
    /I C:\glassfish3\jdk7\include\win32  
    /I C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include  
    NativeDemo.c
    
    Microsoft (R) C/C++ Optimizing Compiler versione 17.00.50727.1 per x64
    Copyright (C) Microsoft Corporation. Tutti i diritti riservati.
    
    cl : warning della riga di comando D9024 : tipo di file di origine 'Files' non r
    iconosciuto, utilizzato file oggetto
    cl : warning della riga di comando D9024 : tipo di file di origine '(x86)\Micros
    oft' non riconosciuto, utilizzato file oggetto
    cl : warning della riga di comando D9024 : tipo di file di origine 'Visual' non
    riconosciuto, utilizzato file oggetto
    cl : warning della riga di comando D9024 : tipo di file di origine 'Studio' non
    riconosciuto, utilizzato file oggetto
    cl : warning della riga di comando D9024 : tipo di file di origine '11.0\VC\incl
    ude' non riconosciuto, utilizzato file oggetto
    NativeDemo.c
    C:\glassfish3\jdk7\include\jni.h(39) : fatal error C1083: Impossibile aprire il
    file inclusione 'stdio.h': No such file or directory
    ma niente...



    Chiedo scusa per la sezione...

  4. #4

    Re: [C++] Creare una DLL con cl.exe

    Originariamente inviato da peruzzo
    codice:
    Cl /LD /I C:\glassfish3\jdk7\include\ NativeDemo.c
    ma comunque inefficaci.
    Questa dovrebbe essere corretta, l'hai lanciata dal Prompt dei comandi di Visual Studio? Perché se la lanci da un prompt normale il compilatore non sa dove pescare gli header standard di sistema.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente bannato
    Registrato dal
    Sep 2012
    Messaggi
    465

    Re: Re: [C++] Creare una DLL con cl.exe

    Originariamente inviato da MItaly
    Questa dovrebbe essere corretta, l'hai lanciata dal Prompt dei comandi di Visual Studio? Perché se la lanci da un prompt normale il compilatore non sa dove pescare gli header standard di sistema.
    Haaaa ecco perchè! Io la lancio da un prompt normale!
    Come faccio ad accedere al prompt di Visual Studio? Se mi spieghi questo dovrei finalmente aver risolto questa campagna di sangue!

  6. #6
    Dovrebbe essere da qualche parte sotto Start->Tutti i programmi->Microsoft Visual Studio (versione).
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Utente bannato
    Registrato dal
    Sep 2012
    Messaggi
    465
    Originariamente inviato da MItaly
    Dovrebbe essere da qualche parte sotto Start->Tutti i programmi->Microsoft Visual Studio (versione).
    Ma, solo per capirci, è un programma simile a cmd.exe senza icone dove si può solo scrivere codice? Quando per aprire un programma bastava la procedura "Start->Tutti i programmi->Microsoft Visual Studio (versione)" erano bei tempi adesso con windows 8 quelli della Microsoft si meriterebbero un calcio nel cul@, per non dire altro. L'unica cosa positiva è che il sistema è stabile e velocissimo ma ad usabilità fa pietà, una vera porcat@ coloss@le. (Mia idea per carità...)

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    (Doppio)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da peruzzo
    Ma, solo per capirci, è un programma simile a cmd.exe
    Non simile ma *è* cmd.exe con l'ambiente preimpostato per include/librerie di VS.

    con windows 8 quelli della Microsoft si meriterebbero ...
    Lascia perdere queste considerazioni ... Probabilmente MS ti direbbe che è una cosa insana cercare di integrare C/C++ nativo e Java e io condivido la cosa ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente bannato
    Registrato dal
    Sep 2012
    Messaggi
    465
    Originariamente inviato da oregon
    Non simile ma *è* cmd.exe con l'ambiente preimpostato per include/librerie di VS.



    Lascia perdere queste considerazioni ... Probabilmente MS ti direbbe che è una cosa insana cercare di integrare C/C++ nativo e Java e io condivido la cosa ...
    e da dove lo prendo questo benedetto cmd.exe su windows 8?!?!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.