HINSTANCE  hModule=LoadLibrary((LPCWSTR)"ez2000.dll");
if(hModule!=NULL){
    FARPROC  proc; 
    proc=GetProcAddress(hModule,"isready");
return proc();
}
else{
return -3;
}
為什麼hModule是null呢?是不是哪裡有錯誤?還有LPCWSTR是什麼作用?

解决方案 »

  1.   

    "ez2000.dll"不在当前目录,你加上路径试试.
      

  2.   

    改成
    HINSTANCE  hModule=LoadLibrary(L"ez2000.dll");
      

  3.   

    你换绝对路径试试呢另外LoadLibrary(_T("ez2000.dll"));
      

  4.   

    出现这种情况的原因无非以下两个:1、路径不对或者编码方式不对;2、该DLL还调用了其他DLL,但是系统没有找到。
      

  5.   

    1>.\WinPrintLib.cpp(97) : error C3861: '_T': identifier not found
      

  6.   

    #include <tchar.h>HMODULE hMod = LoadLibrary(_T("ez2000.dll"));
      

  7.   

    另外,换成绝对路径,要这样比如在c盘根目录下C:\\ez2000.dll要两个\\
      

  8.   

    我現在有個條形碼dll文件,想在調用裡面的方法,請高手給我完整的例子。本人是搞java的對c++一點不熟悉
      

  9.   

    http://www.vckbase.com/document/viewdoc/?id=1667
      

  10.   

    還是不行
    HINSTANCE  hModule=LoadLibrary((LPCWSTR)"D:\\cc\outstep\\swt\\ez2000.dll");
    if(hModule==NULL){
    FreeLibrary(hModule);
    return -5;
    }    FARPROC  proc; 
        proc=GetProcAddress(hModule,"isready");
    return proc();
      

  11.   

    1>.\WinPrintLib.cpp(97) : error C2664: 'LoadLibraryW' : cannot convert parameter 1 from 'const char [28]' to 'LPCWSTR'
      

  12.   

    我不是已经给你写了一个方法了么,怎么还用你老的方法呢你把dll文件和你的exe文件放在同一个目录下,然后调用我上面写的就可以了
      

  13.   

    只是一個cpp文件,並沒有生成exe文件,今天第一次用vs2005編寫的
      

  14.   

    JNIEXPORT jint JNICALL Java_com_promise_kgxiang_core_PrintNative_isready
    (JNIEnv *, jobject){
    HINSTANCE  hModule=LoadLibrary(_T("D:\\cc\outstep\\swt\\ez2000.dll"));
    if(hModule==NULL){
    FreeLibrary(hModule);
    return -5;
    }    FARPROC  proc; 
        proc=GetProcAddress(hModule,"isready");
    return proc();
    還是null
      

  15.   

    我的流程是這樣的java->jni->中間dll->ez2000.dll
      

  16.   

    编码方式是指ASCII和UNICODE,VS2005默认是UNICODE编码方式。
    我看到你上面的路径不对"D:\\cc\outstep\\swt\\ez2000.dll";cc后面少了一个\