Wie kann ich die JNIEXPORT-Funktion von einer DLL in einer anderen C++-DLL aufrufen?

Soroush

Ich schreibe eine visuelle c++-DLL mit einer JNIEXPORT-Funktion wie folgt:

extern "C"
{
    JNIEXPORT int JNICALL sum()
    {
        return 1;
    }
}

Ich möchte diese Funktion in einer anderen visuellen c++-DLL wie folgt aufrufen:

typedef int(__stdcall *f_funci)();

HINSTANCE hGetProcIDDLL = LoadLibrary("C:/.../JNIdllTest.dll");

if (!hGetProcIDDLL) {

    std::cout << "could not load the dynamic library" << std::endl;

    return EXIT_FAILURE;
}

    f_funci funci = (f_funci)GetProcAddress(hGetProcIDDLL, "sum");

if (!funci) {

    std::cout << "could not locate the function" << std::endl;

    return EXIT_FAILURE;
}

std::cout << "funci() returned " << funci() << std::endl;

return EXIT_SUCCESS;

aber wenn ich es ausführe tritt dieser fehler auf

konnte die Funktion nicht finden

was sollte ich tun?

Sami Sallinen

Es scheint, als ob Ihre "Summen"-Funktion nicht wirklich aus der JNIdllTest.dll dll-exportiert wird. Sie können die aus einer DLL exportierten Funktionen anzeigen, indem Sie die DLL zB im Dependency Walker öffnen: http://www.dependencywalker.com/ .

Laden Sie das also herunter und prüfen Sie, ob die Exportansicht die Summenfunktion hat oder nicht und ob der Name der Funktion nur "Summe" ist oder ob sie irgendwie dekoriert ist. (C++ fügt standardmäßig dem Funktionsnamen die Typen des Rückgabewerts und der Funktionsparameter hinzu).

Es sollte nicht dekoriert werden, da sich Ihre Funktion in einem externen "C"-Block befindet, aber wenn dies der Fall ist, stellen Sie sicher, dass die Funktionsdeklaration auch extern "C" davor hat.

Wenn die Funktion wirklich nicht aus der DLL exportiert wird, überprüfen Sie Ihre Definition von JNIEXPORT und versuchen Sie es stattdessen mit "__declspec(dllexport)" - siehe https://msdn.microsoft.com/en-us/library/a90k134d. aspx .

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Wie kann ich dbmap.Insert (interface {}) von einer anderen Funktion aus aufrufen?

VB5 DLL, wie kann ich die Funktion von C # (.NET 4.5) aufrufen?

Wie kann ich die Funktion von einer CSX-Datei zu einer anderen CSX-Datei in Azure aufrufen?

Ich verstehe den PHP-Namespace nicht. Wie kann ich die Funktion einer anderen Klasse aufrufen?

Wie kann ich eine Lambda-Funktion von einer anderen Lambda-Funktion aus aufrufen?

Wie schleife ich eine Funktion von einer anderen Funktion in C ++

Wie kann eingebettetes Python die Funktion einer C ++ - Klasse aufrufen?

Wie kann ich die Spracherkennung in einer Funktion mehrmals aufrufen?

Wie kann man eine von anderen in c ++ geschriebene DLL / lib verknüpfen und die API in C # aufrufen?

Wie kann ich eine Funktion von einer Komponente zur anderen aufrufen? Reagieren

Wie kann ich Argumente aufrufen und die Ausgaben einer von Google Cloud gehosteten Funktion zurückgeben?

C ++ - Funktion, die von einer Funktion mit demselben Namen in einer anderen DLL ausgeblendet wird

Wie kann ich eine Funktion nach Abschluss einer anderen Funktion aufrufen, wenn die andere Funktion mehr Zeit benötigt?

Wie kann ich eine Funktion aus der C # -App in einer C ++ / CLI-DLL aufrufen?

Wie kann ich Daten von einer anderen Funktion in onCreateView abrufen?

Wie kann ich die Funktion in einer anderen Funktion aufrufen?

Wie kann ich eine Methode aufrufen, die sich auf einer anderen Website in c # befindet?

kann keine Funktion von einer anderen Funktion aufrufen

Wie kann ich eine Angular-Funktion innerhalb desselben Dienstes von einer anderen aufrufen?

Wie kann ich die Verbindungsklasse von einer anderen Klasse aus aufrufen?

Wie kann ich eine Funktion schnell aufrufen, wenn die Schleife in einer anderen Funktion ausgeführt wird?

Wie kann ich die Funktionen einer DLL anzeigen?

Wie kann ich eine Variable von einer anderen Funktion erhalten?

Wie kann ich dieses Ereignis von einer anderen Funktion aus aufrufen?

Warum kann ich in Python keine Funktion von einer anderen Funktion aus aufrufen? Funktion undefinierter Fehler

Wie rufe ich eine Funktion einer Klasse aus einer anderen DLL auf, ohne die Klasse zu kennen?

Wie kann ich retailId (von flatMapLatest) in einer anderen Funktion verwenden?

Wie kann ich einen Memberfunktionszeiger von einer anderen Memberfunktion aufrufen?

Wie kann ich eine Funktion von einer anderen Funktion aufrufen und wie?

TOP Liste

  1. 1

    MongoDB eingebettetes Dokument unterscheiden und filtern

  2. 2

    Wie aktualisiere ich ein Feld in einer Raumdatenbank mit einem Repository und einem Ansichtsmodell?

  3. 3

    Interpolieren Sie mit Python die 2D-Matrix entlang der Spalten

  4. 4

    So verschieben Sie ein Bild in Flutter/Dart mit einem Draggable

  5. 5

    Wie vermeide ich, dass die gesamte App neu geladen wird, wenn Nav.Link von React-Bootstrap verwendet wird?

  6. 6

    Wie verwende ich Format-Table ohne Abschneiden von Werten?

  7. 7

    numpy: Berechnen Sie die Ableitung der Softmax-Funktion

  8. 8

    Warum funktioniert das Umgebungslicht in diesem Beispiel nicht?

  9. 9

    Ersetzen von Einträgen in einer Spalte durch eine andere basierend auf der Bedingung

  10. 10

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  11. 11

    Wie ändere ich die Farbe des Symbols und des Textes, wenn ich den Bildschirm im Navigator der unteren Registerkarte in "Reaktion native" ändere?

  12. 12

    spring-data-jpa: ORA-01795: Die maximale Anzahl von Ausdrücken in einer Liste beträgt 1000

  13. 13

    Wie lade ich eine Datei herunter, ohne den Typ oder Dateinamen zu kennen?

  14. 14

    Excel VBA - Erstellen Sie mehrere Dateien aus Daten in mehreren Arbeitsmappen

  15. 15

    Docker bleibt beim Ausführen von time.sleep (1) in einer Python-Schleife hängen

  16. 16

    Überprüfen Sie, ob der ausgewählte Wert 'YES' ist, wenn ja, aktivieren Sie ein Steuerelement mit Javascript

  17. 17

    Python gibt einen Fehler aus, dass eine Datei nicht vorhanden ist, wenn dies eindeutig der Fall ist

  18. 18

    TypeAhead.js zeigt keine Ausgangsschienen an?

  19. 19

    Pandas rufen einen Wert basierend auf dem Index ab

  20. 20

    Aktualisieren des Werts im Json-Objekt in Python

  21. 21

    Das Abrufen von einer URL zeigt einen Fehler in der Konsole an, auch nachdem er abgefangen wurde?

heißlabel

Archiv