0
我刚买了一个dll文件附带的设备。我想使用Visual C++来编程设备。如何将.dll文件加载到我的项目中?使用提供的DLL在Visual C++项目
我刚买了一个dll文件附带的设备。我想使用Visual C++来编程设备。如何将.dll文件加载到我的项目中?使用提供的DLL在Visual C++项目
A 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代码,将载入您libary,然后尝试加载功能MPUSBOpen
,这是在你的DLL中实现。
您将需要以相同的方式加载头文件中定义的其他函数(至少如果您想使用它们)。
即时使用LoadLibrary函数时出现错误。 '不一致的dll链接'。我的代码是HMODULE WINAPI LoadLibrary( __in LPCTSTR mpusbapi ); – moesef 2012-02-21 19:40:25
这是因为你试图声明一个Windows API函数。我仍然不知道你想做什么,但是如果你可以使用WinAPI函数,那么不要重新声明它们,而是为它们导入头文件。在这种情况下:'#include' –
Chris
2012-02-21 19:44:51
我想我应该给你更多的信息......我正尝试为Linear Acutator创建一个自定义程序。我正在尝试使用[Detalied LAC Instructions](http://www.firgelli.com/pdf/LAC_Advanced_Configuration.pdf)第6页上的说明来创建此自定义程序。我在编程方面有点新手,但我的印象是,如果我链接提供的DLL,我将能够使用提供的函数和控制值。 – moesef 2012-02-21 19:50:26