我为两个编译器管理 JNI 项目:MSVC++ 8.0 和 9.0,我的 cpp 文件包含以下实现: extern "C" { JNIEXPORT jlong JNICALL Java_context_ServiceProviderContext_StartServiceProvider (JNIEnv * env, jclass, jstring jspath){ ..... }
在depends.exe 实用程序的帮助下,我可以看到MSVC 8.0 成功导出了预期的函数:Java_context_ServiceProviderContext_StartServiceProvider 但是在MSVC 9.0 下编译让我抓狂,它的导出就像完全忽略extern "C" 一样。depends.exe 向我展示:_Java_context_ServiceProviderContext_StartServiceProvider@12
有谁知道 9.0 项目中究竟是什么导致了这种行为?