在Visual C ++项目中使用提供的dll

时间:2012-02-21 18:44:25

标签: visual-c++ dll

我刚买了一个附带dll文件的设备。我想使用Visual C ++来编程设备。如何将.dll文件加载到我的项目中?

1 个答案:

答案 0 :(得分:1)

DLL是一个包含已编译程序逻辑的库文件,就像EXE一样。您不能单独执行它,但是像EXE文件一样,您不能将其“加载”到项目中。

您需要使用Load Library之类的函数来加载库,然后使用GetProcAddress来查找要调用的函数。


编辑:

在您在评论中澄清了您的问题后,您试图编写一个Windows程序而不是您在设备上运行的程序。

我写了一些示例代码,向您展示如何开始:

#include <windows.h>     // This is a windows header file. The functions I mentioned above are declared here
#include "mpusbapi.h"    // This is the header file supplied. It declares the function prototypes that are defined in the DLL

int main(int argc, char* argv)
{
    // Try to load the library
    HMODULE mpbusDLL = NULL;
    mpbusDLL = LoadLibrary(L"mpusbapi.dll");

    if (mpbusDLL != NULL) {
        // If the library could be loaded, then load the functions using GetProcAddress()

        // Load the function 'MPUSBOpen' from the DLL
        MPUSBOpen = (HANDLE(*)(DWORD, PCHAR, PCHAR, DWORD, DWORD)) GetProcAddress(mpbusDLL, "_MPUSBOpen"); 

        ...
        MPUSBOpen(...);
    }
}

此C代码将加载您的库,然后尝试加载函数MPUSBOpen,该函数在您的DLL中实现。
您需要以相同的方式加载头文件中定义的其他函数(至少如果您想使用它们)。