c++ - QT - 指向全局内存的指针

标签 c++ qt

首先:抱歉我的英语来自 Google

问题:
我正在更改 IDE,我正在使用 QT Creator 从 Borland 迁移到 QT。

在 Borland 中,我使用了一个包含在类型库 (APuma.dll) 中的类。原型(prototype)是:

BOOL XOpen(长 hDIB,LPCTSTR 文件名)//OpenOCR - 楔形文字

hDIB 是指向图像全局内存的指针。
此版本不适用于文件。

为了传递一个指向图像全局内存的指针,我使用了 GDI+,但是在 QT 中找不到类似的东西,并且包含 Gdiplus.h 和 GdiPlusInit.h 会产生太多错误。

我如何授予对托管图像的全局内存的访问权限?

非常感谢。

最佳答案

好的,我想我明白你需要什么。您需要一个指向图像像素的指针,以便传递它。 Qt 中最简单的选择是使用 QImage 对象并使用其 bits() 成员。

像这样:

QImage image(filename);
uchar* p = image.bits();
XOpen(reinterpret_cast<long>(p), whatever);

只需确保 XOpen 以某种方式知道图像的尺寸。并且您拥有正确的格式(参见 QImage::convertToFormat)。有关更多信息,请查看位于 http://doc.qt.io/qt-4.8/qimage.html 的 Qt 文档。

关于c++ - QT - 指向全局内存的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3585601/

相关文章:

c++ - 在没有类定义的情况下获取模板类型的类型名称

c++ - QTextEdit : how can I modify text being pasted into editor?

c++ - 使用 Qt/C++ 从单独的线程发出对象时如何避免复制?

c++ - QPlainTextEdit显示缓慢的性能

c++ - 防止 MEX 文件在 MATLAB 中崩溃

C++ 内存错误 : free(): invalid next size (fast)

c# - C "FILE *f;"的 C# 是什么?

c++ - 在 C++ 中使用没有类实例的静态函数

c++ - 从 QVariant 接收未知的模板化对象

android - JNI 多个注册调用