vc ++ dll由vc ++应用程序调用ordinal no

时间:2012-07-19 10:31:42

标签: c++ visual-c++ dll loadlibrary

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

<。>文件中的

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 个答案:

答案 0 :(得分:1)

致电var后,检查NULL是否为GetProcAddress

使用MAKEINTRESOURCE可能会有更多成功,例如:

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

请务必致电free以获取malloc返回的指针,并在完成hDLL后致电FreeLibrary