本文详细介绍了在Qt环境中如何创建并使用动态链接库(DLL),包括方法定义、参数传递、返回值设定以及事件回调机制。
QT编写DLL给外部程序调用示例 方法 参数 返回值 事件回调
1. C#或者.NET:
第一步:引入命名空间;
```csharp
using System.Runtime.InteropServices;
```
第二步:声明函数,必须与实际DLL中函数名及参数一致;
```csharp
[DllImport qtdll.dll]
public static extern int add(int i);
```
第三步:调用函数执行;
```csharp
Console.WriteLine(add(10).ToString());
```
2. QT:
第一步:引入头文件;
```cpp
#include
```
第二步:定义函数指针,以备调用;
```cpp
typedef int (*Add)(int);
```
第三步:载入DLL 调用函数执行;
```cpp
QLibrary lib(qtdll.dll);
lib.load();
Add add = (Add)lib.resolve(add);
add(50);
```
3. C或C++:
第一步:引入头文件;
```c++
#include
```
第二步:定义函数指针;
```c++
typedef int (*Add)(int);
```
第三步:载入DLL 调用函数执行;
```c++
HINSTANCE hDll = LoadLibrary(qtdll.dll); // 载入DLL获取句柄
if (hDll != NULL) {
Add add = (Add)GetProcAddress(hDll, add); // 获取函数地址
printf(%d, add(110));
FreeLibrary(hDll); // 释放DLL
}
```