【问题标题】:how can i use Dll function in qt我如何在qt中使用Dll函数
【发布时间】:2010-01-25 09:38:45
【问题描述】:

如何使用这个 dll 函数?:

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

在 QT 中。这个功能是反转图像。

【问题讨论】:

    标签: c qt dll


    【解决方案1】:

    如果你想在运行时动态加载你的库,你有两种方法:
    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);

    【讨论】:

      猜你喜欢
      • 2015-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多