3 Stimmen

Gibt es ein Visual C++-Äquivalent zu gcc --kill-at?

Ein DLL-Name hat nämlich ein zusätzliches @8 am Ende, das zu Problemen führt. Anscheinend würde die Verwendung des --kill-at-Flags in gcc dieses Problem lösen, aber ich kann keine ähnlichen Vorschläge für MSVC finden.

EDIT: Ein paar weitere Informationen:

Ich versuche, eine C++ JNI dll zum Laufen zu bringen, aber ich erhalte ständig Ausnahme im Thread "Thread-0" java.lang.UnsatisfiedLinkError: eveTimers.PollThread.checkKeyboardChanges()V zurück, anstatt eines funktionierenden Programms. Ich habe Quickview benutzt, um mir die dll anzusehen und entdeckt, dass sie mit @8 dekoriert ist, was http://www.velocityreviews.com/forums/t143642-jni-unsatisfied-link-error-but-the-method-name-is-correct.html deutet auf ein mögliches Problem hin. Hilfe würde sehr geschätzt werden.

1voto

[Als irrelevant herausgeschnitten, siehe Kommentar unten].

Ein anderer Ansatz ist Exportnamen in einer .DEF-Datei angeben .

Ihr Aufrufkonventionen und Linker-Einstellungen kann dies ebenfalls beeinflussen. Um ehrlich zu sein, ist es ein bisschen eine schwarze Kunst. Verwenden Sie MSVC seit einem Dutzend Jahren und Sie werden immer noch gelegentlich in lästige Namensverwechslungsprobleme geraten, die einfach zu beheben sein sollten, aber nicht trivial sind, wenn man bedenkt, wie die verschiedenen Einstellungen zusammenwirken.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X