代码之家  ›  专栏  ›  技术社区  ›  jiten

vc++应用程序按序号调用vc++dll

  •  0
  • jiten  · 技术社区  · 14 年前

    如何在vc++中调用vc++dll。

    在.h文件中

    typedef int (*LPVAR)(char * ptr_f, char *CC);
    HINSTANCE hDLL;
    

    在.cpp文件中

    hDLL = NULL;
    LPVAR var;
    hDLL = LoadLibrary("Pro.dll");
    
    
    if( hDLL == NULL )
        AfxMessageBox("Could not load the DLL");
    else
    {
        var = (LPVAR)GetProcAddress(hDLL, "#2"); //2 is ordinal no
        char *ch,*a;
        ch = (char*)malloc(100*sizeof(char));
        a = (char*)malloc(10*sizeof(char));
        int c = var(ch,a);
    }
    
    1 回复  |  直到 14 年前
        1
  •  1
  •   Community Mohan Dere    9 年前

    检查一下 var 不是 NULL 打电话后 GetProcAddress

    使用 MAKEINTRESOURCE ,如下所示:

    var = (LPVAR)GetProcAddress(hDLL, MAKEINTRESOURCE(2));
    

    记得打电话 free 对于由返回的指针 malloc ,然后呼叫 FreeLibrary 当你完成 hDLL