问题标签 [qlibrary]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
676 浏览

qlibrary - Qt shell32.dll ShellExecute 一个奇怪的行为。如何显示文件?

我有一些代码定义如下:

此代码按我的意愿启动文件,但立即爆炸。新窗口保持打开状态。

我有另一个版本,像这样:

这段代码不会爆炸。请注意,我什至不需要调用 b.exec()。但是,如果我调用 b.exec(),则会显示值 42。

有人能告诉我这里出了什么问题以及我能做些什么来解决它吗?

谢谢。

编辑:

对于后人来说,这里的前提是错误的。Qt 提供了我需要的确切功能,而无需特定于平台的代码。请参阅已接受的答案。

0 投票
2 回答
3331 浏览

qt - 在 Qt 中正确使用 QUID 吗?(7-Zip DLL使用问题(QLibrary、Quuid GUID转换、接口))

我正在尝试编写一个程序,该程序将使用 7-Zip DLL 从内部存档文件(7z、zip 等)中读取文件。

这是我到目前为止的位置:

尝试在 Qt Creator 中构建它会导致以下错误:

无法在参数传递中将“Quuid*”转换为“const GUID*”

在这种情况下应该如何正确使用 QUID?

此外,作为 C++ 和 Qt 新手,我还没有完全掌握模板或接口,所以总的来说,我在完成这些第一步时遇到了麻烦。如果有人可以提供提示甚至示例代码,例如如何从 ZIP 文件中提取图像文件(稍后将在 Qt GUI 中显示*),我将不胜感激。

  • 我目前的主要目标是编写一个带有 GUI 的程序,用于选择包含图像文件(PNG、JPG 等)的存档文件,并在 GUI 中一次显示一个文件。简而言之,基于 Qt 的 CDisplayEx。
0 投票
0 回答
705 浏览

javascript - Node.js 应用程序的结构和流程

我刚刚完成了我的第一个 Node 应用程序的编写。它运行良好,但是当我从社区阅读更多内容并吸收详细信息时,我得出的结论是,我的应用程序与我正在阅读的示例有点不同。

所以我更深入地寻找解决方案并阅读了很多 howtonode.org。我偶然发现了控制流、承诺和 Q 库的概念。我开始消化这一切,我想我明白了,但我想确认我的研究和发现。在我决定使用 Qlibrary 重组所有内容之前,我想知道我是否至少已经掌握了我的核心应用程序和方法,它基本上将代表我在这一点上如何前进。

应用程序.js

控制器.js

我采取了将我所有的库和重要组件封装在应用程序变量中的方法,并将其传递到我的控制器中,这样我就可以直接调用引用,并且在每个回调之间只传递一个变量。

对于之后的每个请求,我都从我附加到 app.js 中 pre 的请求值访问 app 变量(因此路由回调函数中的 request.app.model() 函数。

我想知道我是否应该关注以这种方式构建我的代码。它使来回传递引用变得非常容易,而不必担心全局变量或任何类似的东西。我读到了一些类似的东西,有人暗示这是一个聪明的方向,因为它确实有助于命名空间和解决整个全局变量声明问题(这是一个很大的禁忌)。

如果我被推向正确的方向,我认为 Q 库和其他一切都会很好地到位。

谢谢!

0 投票
2 回答
3917 浏览

qt - Qt 和链接到外部 DLL

我已经开发了一个程序,我正试图使这个程序与其他公司制造的可控光源一起工作。我已经给公司发了电子邮件,他们同意将他们的外部库作为 DLL 发送给我。

我已经使用Qt 4.8.1开发了我的所有软件,并且已经使用MSVC2008进行了编译。

可控灯的 DLL 在 Visual Studio 2008 中编译,用 C++ 或 C# 编写(制造商不确定)。我得到的只是 DLL 和一个文本文件,说我必须:

  1. 添加 DLL 作为对我的项目的引用
  2. 添加using LightName;到班级顶部
  3. 像这样实例化对象的实例:LightName *ln = new LightName();
  4. 使用新创建的 LightName 实例调用函数 void turnOn()。

首先,我觉得奇怪的是外部库需要我实例化他们的对象的一个​​实例,尤其是当它用于一个简单的硬件时。

其次,对方公司没有给我提供接口文件。

我的问题是: 如果没有 Qt 环境中的接口头文件,我怎么可能链接到 C++ DLL 并公开嵌套在这个库中的函数?有没有办法为外部库制作接口?


我已经尝试使用QLibrary并执行以下操作:

但是,这不起作用,因为给我的 DLL 不是 C DLL,而且我没有接口,所以 Qt 不知道它需要解析哪些符号。


我尝试使用 dumpbin /EXPORTS 命令显示从我的 DLL 导出的所有定义。不幸的是,这无法产生任何东西。我希望我能从中得到某种被破坏的 C++,然后我可以整理出自己的标题。


我尝试使用依赖walker(非常有用的工具),但是它无法解析任何符号来给我一些函数定义。


0 投票
1 回答
178 浏览

segmentation-fault - QLibray 分段错误

我尝试使用外部库。当我从这个库调用函数时,它工作正常。但是后来我尝试在循环中调用这个函数我有分段错误。代码例如:

我做错了什么?

0 投票
1 回答
749 浏览

c++ - c ++ Qt:从dll中捕获段错误

我正在使用 QLibrary 加载外部 dll。在某些情况下,dll 只是崩溃(段错误)。DLL 不会引发异常。处理这个问题的最佳方法是什么?我读到我需要在单独的进程/线程中运行。这是唯一的选择吗?

干杯,米

0 投票
2 回答
3718 浏览

qt - 使用 QLibrary 加载具有依赖关系的库

假设我有两个库,A.dll并且B.dll. 该库A依赖于B. 我想加载A到我的项目中。

我的项目在C:/Project. 如果我同时保留A.dllB.dllC:/Project我可以加载A

这工作正常。但是,如果不在 in 中,load()将返回 false 。B.dllC:/Project

问题是我想同时保留A.dllB.dllC:/Project/lib但是当我将两个库移动到该位置并尝试加载时:

它失败。但是,如果我保持A.dllinC:/Project/libB.dllin ,这将有效C:/Project

如何保留两个库C:/Project/libA.dll成功加载?

编辑:我得到的错误信息是"Cannot load library C:/Project/lib/A . The specified module could not be found."

0 投票
1 回答
6202 浏览

c++ - QLibrary - 导入一个类

我有一个 QT 库,我想将它导入另一个项目。

现在,既然我想要那样,即使我修改了库,其他项目也不需要再次编译,我开始使用 QLibrary。

但是...我无法导入课程。或者更好的是,我可以导入类,但不能访问它的方法。

这是我做的例子。

这是类声明:

这是实现:

虽然这是主文件,但在另一个项目中:

现在,我可以访问a对象的所有数据b值(cmyClassInstancemyClassInstance->getValues()

我该如何解决这个问题?是否可以从导入的类中调用方法?

谢谢..

0 投票
4 回答
418 浏览

c++ - 从库 (DLL) 函数访问 ui 指针

大家好,我想从非成员函数更新 ui。除了将“this”指针作为我的非成员传递之外的任何帮助都是来自库的回调。

下面是我的代码:

主窗口.cpp

所以我需要的是我应该能够从我的非成员回调中将数据附加到 UI。请帮我。

编辑:我不允许修改我的回调

根据评论编辑:callback将在不同的线程中调用,因此从那里调用小部件方法会出错'cannot send events to objects owned by a different thread'

0 投票
0 回答
3777 浏览

c++ - QLibrary 无法解析共享库中的函数

我正在尝试从使用 Qt 创建的共享库中动态包含函数。我使用 QLibrary 来做到这一点。但是我有以下问题:当我尝试调用 QLibrary::resolve() 方法时,它总是返回 0。

这是我的共享库的头文件qtarithmetic.h :

这是我的共享库的 cpp 文件qtarithmetic.cpp :

这是使用我的库的测试项目的.pro文件:

这是这个测试项目的.cpp文件:

library.errorString()包含以下信息: