public class Test {
static { 
System.loadLibrary("djcvt");

public native int  pcmtoWave(String PcmFileName,String WaveFileName);
public native int  WavetoPcm(String WaveFileName,String PcmFileName);
public native int  AdtoPcm(String AdpcmFileName,String PcmFileName);
public native int  PcmtoAd(String PcmFileName,String AdpcmFileName);
public native int  Ad6ktoPcm(String AdpcmFileName,String PcmFileName);

public static void main(String [] args){

Test test = new Test();
try {
test.AdtoPcm("d:/20080201104426_8001_013631911118.voc", "d:/aa");
} catch (RuntimeException e) {
// TODO Auto-generated catch bloc
System.out.println("error     !!!");
e.printStackTrace();
}

}
}
报如下错误是哪里的问题呀
Exception in thread "main" java.lang.UnsatisfiedLinkError: Test.AdtoPcm(Ljava/lang/String;Ljava/lang/String;)I
at Test.AdtoPcm(Native Method)
at Test.main(Test.java:19)

解决方案 »

  1.   

    光给出Java代码恐怕是不够的,而且可能不是代码上的问题。
      

  2.   

    那还需要什么呀我也是调用别人的dll
      

  3.   


    #ifndef _DJCVT_H_
    #define _DJCVT_H_#ifdef __cplusplus
    extern "C" {
    #endif
    int WINAPI PcmtoWave(char* PcmFileName,char* WaveFileName);
    int WINAPI WavetoPcm(char* WaveFileName,char* PcmFileName);
    int WINAPI AdtoPcm(char* AdpcmFileName,char* PcmFileName);
    int WINAPI PcmtoAd(char* PcmFileName,char* AdpcmFileName);
    int WINAPI Ad6ktoPcm(char* AdpcmFileName,char* PcmFileName);
    #ifdef __cplusplus
    }
    #endif
    #endif
      

  4.   

    利用JNI的话,C或C++里面的头文件应该比照java产生的头文件格式书写吧,最好是利用java先产生该头文件,再根据头文件形式补写C的代码
      

  5.   

    那里的逻辑我不会写所以要调用别人的DLL但又不知道怎么用,现在有.dll文件,和.h文件不可以直接调用吗
      

  6.   

    很有可能是别人些的DLL问题,解决这个问题,应该从DLL程序入手