我如何在qt中使用Dll函数

时间:2010-01-25 09:38:46

标签: c qt dll

我该如何使用这个dll函数?:

extern "C"__declspec(dllexport) 
  void   __cdecl InvertRawPic(unsigned char *In, unsigned char *Out, 
                              unsigned int rows, unsigned int cols);
在QT中

。此功能用于反转图像。

1 个答案:

答案 0 :(得分:0)

如果您想在运行时动态加载库,您有两种方法:
1)使用特定于平台的API(对于Windows,它的功能类似于LoadLibrary(...),GetProcAddress(...));
2)使用QLibrary类,这只是跨平台Qt包装器来做这样的事情。
这两种方法都要求您为GetProceAddress()或QLibrary :: resolve()等方法指定函数名称。
Qt也有插件系统,但它不适合侧面创建的dll ......
这是我的代码中的工作示例:


// it is body of "bool func()" function...
typedef DWORD (*SetSystemMemFuncPtr_t)(DWORD dwStorePages);
SetSystemMemFuncPtr_t SetSystemMemoryDivision;

HMODULE hLib = 0; LPCWSTR libName = L"coredll.dll"; LPCWSTR procName = L"SetSystemMemoryDivision";

if(!(hLib = LoadLibrary(libName))) { return false; }

if(!(SetSystemMemoryDivision = reinterpret_cast(GetProcAddress(hLib, procName)))) { return false; } // do some work... FreeLibrary(hLib);