我正在编写一个 Java 代理库。但是,即使我在 C++ 代码中显式导出了
Agent_OnLoad
函数,JVM 也无法找到它。
extern "C" {
JNIEXPORT jint JNICALL
Agent_OnLoad(JavaVM* vm, char* options, void* reserved)
{
return JNI_OK;
}
}
然后它会说
Could not find Agent_OnLoad function in the agent library: ./FuncTest.dll
。启动命令行是java -agentpath:./FuncTest.dll -jar .\helloworld.jar
使用 Visual Studio 2022、Corretto 17.0.8
名称修饰应用于导出的函数名称。请参阅如何指定 DLL 导出的“干净”名称?以获取详细答案。