我该如何使用这个dll函数?:
extern "C"__declspec(dllexport)
void __cdecl InvertRawPic(unsigned char *In, unsigned char *Out,
unsigned int rows, unsigned int cols);
在QT中。此功能用于反转图像。
答案 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);