转载:http://blog.sina.com.cn/s/blog_6a961ad40100kiey.html
.NET2005:
空白工程新建DLL后,将DLL和LIB文件放入需要调用的“指定目录”
项目-》属性->连接器-》常规-》附加库目录->添加“指定目录”
项目-》属性->连接器-》输入-》附加依赖项->添加“LIB文件”
添加头文件到项目中,则DLL可用!
VC6.0:
使一个项目编译生成DLL库而不生成可执行文件:
删除main()方法;
将.pro项目文件中的TEMPLATE = app改为TEMPLATE = lib。
然后编译,此时生成的就是.a和.dll的文件。
在另一个项目中调用此DLL:
在项目文件中添加LIB。如添加此行:LIBS += "D:\workspace\MRP_Common\debug\common.dll" (common.dll既是上面生成的DLL);
复制dll中类或方法的头文件到该项目中,并在要调用common.dll中类或方法的文件上面include;
make,在debug目录中生成可执行文件,然后将dll复制到debug中,运行。
例子:
########################### 生成DLL的工程: #######################
修改pro文件: TEMPLATE=lib
########################### .h文件 #######################
#ifndef DLLTEST_H
#define DLLTEST_H
#ifdef Q_WS_WIN
#define MY_EXPORT __declspec(dllexport)
#else
#define MY_EXPORT
#endif
class DllTest {
public:
DllTest();
int getAge() {
return 10;
}
};
extern "C" MY_EXPORT int add(int a, int b) {
return a + b;
}
extern "C" MY_EXPORT DllTest* getDllTest(); // 使用类
#endif // DLLTEST_H
########################### .cpp文件 #######################
#include "dlltest.h"
#include <qDebug>
DllTest::DllTest() {
qDebug() << "Shared Dll Test";
}
DllTest* getDllTest() {
return new DllTest();
}
// 如果是C++编译的函数, 要使用extern "C"来包装成C函数(导出函数, 给外部提供服务).
########################### 使用DLL的工程: #######################
pro文件中加入: LIBS += "DllTest.dll"
########################### 测试.cpp文件 #######################
#include "dlltest.h"
#include <QLibrary>
#include <qDebug>
#include <QApplication>
typedef int (*AddFunc)(int, int);
typedef DllTest* (*GetFunc)();
int main(int argc, char* argv[]) {
QApplication app(argc, argv, false);
QLibrary lib("DllTest");
if (lib.load()) {
qDebug() << "Load dll successfully.";
AddFunc func = (AddFunc)lib.resolve("add");
if (func) {
qDebug() << func(1, 3);
}
GetFunc g = (GetFunc)lib.resolve("getDllTest");
if (g) {
DllTest *t = g(); // 使用DLL中的类
qDebug() << t->getAge();
delete t;
}
} else {
qDebug() << "Load dll Failed";
}
return app.exec();
}
分享到:
相关推荐
C#调用QT的dll方法 在这篇文章中,我们将讨论如何在C#中调用QT的dll方法。首先,我们需要在QT平台上建立一个dll工程,设置头文件和源文件,然后生成dll文件。最后,我们可以在C#中使用DllImport特性来调用dll方法。...
首先,我们需要创建一个Qt项目,目标是生成一个动态链接库(DLL)。在Qt Creator中,选择"新建项目",然后选择"库" -> "Qt库" -> "Qt DLL"。填写必要的项目信息,如项目名、位置等,并确保选择正确的编译器和Qt版本...
MFC是微软提供的一个C++类库,用于简化Windows API的使用,而QT则是由Qt公司开发的一个跨平台的C++图形用户界面库。本教程将探讨如何在MFC项目中调用QT类库,实现如QMessageBox的弹出提示功能,并在MFC应用中动态...
本篇文章将深入探讨如何在QT应用中调用由VS编译的C#动态链接库(DLL)。 首先,我们需要理解C# DLL库是如何创建的。在VS中,你可以创建一个类库项目,编写C#代码,并将其编译为DLL。这个DLL可以包含各种功能,如...
QT是一个跨平台应用程序和UI开发...windows开Qt开发方法:一、Qt Creator+MinGW 或者 Qt Creator+VC++ Compiler二、QT4.8.5 for Windows(VS2015+VS插件)。本实例为VS2015+Qt+Qt插件中开发Qt应用程序同时调用MFC对话框。
在本项目中,"VS2017+QT DLL UI.zip" 包含了使用Visual Studio 2017(VS2017)集成开发环境,通过MFC(Microsoft Foundation Classes)调用QT库创建带用户界面的动态链接库(DLL)的相关资源。这个项目结合了两个...
3. **跨语言调用**:由于MFC是基于C++的类库,而Qt也是使用C++编写,因此可以直接进行跨库调用。 #### 三、具体实现步骤 1. **下载Qt解决方案库** - 首先需要下载Qt的解决方案库,该库包含了将Qt与MFC集成所需的...
6. **编译和运行Qt项目**:最后,使用qmake和make(或者直接在IDE中编译)来构建Qt项目,然后运行生成的应用程序,你应该能看到C语言代码的功能得以实现。 以上就是Qt调用C语言代码的基本流程。这个过程可能会涉及...
QT调用C# DLL(CLR)是跨平台开发中的一种技术融合,允许使用Qt框架的C++代码调用由.NET Framework或.NET Core编译的C#动态链接库(DLL)。这种混合编程方式可以利用C#丰富的类库和Qt的用户界面设计能力。本文将详细...
在Qt环境下,开发DLL(动态链接库)时,我们需要考虑如何正确地管理和使用Qt的类库,特别是当涉及到UI界面时。DLL文件是一种在Windows操作系统中广泛使用的代码和数据共享机制,它允许多个应用程序共享同一段代码,...
在本文中,我们将深入探讨如何使用Visual Studio 2019(VS2019)编译Qt 5.15.0的源码,生成一个包含dll、pdb和h文件的完整SDK,以便进行Qt代码的调试。Qt是一个跨平台的应用程序开发框架,广泛应用于图形用户界面和...
4. **在Qt中调用DLL**:使用Qt C++代码调用生成的DLL文件。这通常涉及到加载DLL、获取函数指针以及调用这些函数的过程。 5. **数据交换**:为了确保Qt与MATLAB函数之间正确传递数据,需要处理好数据类型的转换。...
6. **使用动态库**:在目标项目中,通过`QT += core gui`等语句引入Qt模块,并使用`QMYSQLDriverPlugin`加载动态库,然后实例化并调用动态库中的类和方法。 7. **考虑平台差异**:动态库的使用可能因操作系统而异,...
在本文中,我们将深入探讨如何使用QT5.9框架与海康威视的相机设备进行交互,以及在多线程环境中实现QLabel组件实时显示相机捕获的图像。海康威视是全球知名的安防监控设备制造商,其产品广泛应用于各种监控场景。而...
"NCReport QT qtcreator 打印预览"这个标题涉及到的是一个使用QT Creator开发的项目,该项目专注于在QT环境下实现报表的打印预览功能。NCReport可能是一个专门用于QT的报告生成库,允许用户设计和显示报表,并在QT...
Qt 提供了一组范围相当广泛的 C++ 类库,并包含了几种命令行和图形界面的工具,有效地使用这些工具可以加速开发过程。Qt Designer:Qt 设计器。用来可视化地设计应用程序界面。Qt Linguist :Qt 语言学家。用来翻译...
4. **引入DLL**:将生成的DLL文件和相关的头文件添加到你的MFC或Win32项目中,通过正确的API调用来使用Qt的功能。 5. **调试与测试**:完成以上步骤后,进行调试和测试,确保Qt功能在MFC/Win32环境中可以正常工作。...
当Java应用程序需要使用Qt的组件时,它会调用这个dll文件来实现图形界面的功能。这个库文件包含了Qt的Java绑定,使得Java代码能够直接调用Qt的函数和类,实现了Java与Qt的交互。 2. **qtjava.jar**:这是一个Java ...
在本项目中,我们主要探讨的是使用HIKVISION的SDK进行工业相机的二次开发,并结合QT框架在Windows环境下创建一个控制台应用实例。HIKVISION是全球知名的安防设备制造商,其提供的SDK允许开发者深入定制和优化相机...
这是一个工具,它的主要作用是帮助开发者将使用MFC(微软基础类库)编写的代码迁移至QT框架下。QTwinMigrate可以简化这一过程,让MFC应用能够利用QT的特性,比如丰富的GUI控件和跨平台能力,而无需完全重写代码。 ...