资源简介
QT编写DLL给外部程序调用示例 方法 参数 返回值 事件回调 :
1:C#或者 NET
第一步:引入命名空间;
using System Runtime InteropServices;
第二步:声明函数 必须与实际DLL中函数名及参数一致;
[DllImport "qtdll dll" ]
public static extern int add int i ;
第三步:调用函数执行;
Console WriteLine add 10 ToString ;
2:QT
第一步:引入头文件;
#include <QLibrary>
第二步:定义函数指针 以备调用;
typedef int Add int ;
第三步:载入DLL 调用函数执行;
QLibrary lib "qtdll dll" ;
lib load ;
Add add Add lib resolve "add" ;
add 50 ;
3:C或C++
第一步:引入头文件;
#include <windows h>
第二步:定义函数指针;
typedef int Add int ;
第三步:载入DLL 调用函数执行;
HINSTANCE hDll LoadLibrary "qtdll dll" ; 载入DLL获取句柄
if hDll NULL
{
Add add Add GetProcAddress hDll "add" ; 获取函数地址
printf "%d" add 110 ;
FreeLibrary hDll ; 释放DLL
}">QT编写DLL给外部程序调用示例 方法 参数 返回值 事件回调 :
1:C#或者 NET
第一步:引入命名空间;
using System Runtime InteropServices;
第二步:声明函数 必须与实际DLL中函数名及参数一致;
[DllImport "qtdll dll" ]
public static extern int add in [更多]
代码片段和文件信息
#include “qmfcapp.h“
#include “windows.h“
//windows下DLL函数入口
BOOL WINAPI DllMain( HINSTANCE hInstance DWORD dwReason LPVOID lpvReserved )
{
static bool ownApplication = FALSE;
if ( dwReason == DLL_PROCESS_ATTACH )
ownApplication = QMfcApp::pluginInstance( hInstance );
if ( dwReason == DLL_PROCESS_DETACH && ownApplication )
delete qApp;
return TRUE;
}
//定义函数回调指针
typedef void (CALLBACK *FunCallBack)(int par);
//定义回调函数
FunCallBack OnEvent=NULL;
//定义回调参数
int par;
//定义C语言类型导出事件函数
extern “C“ __declspec(dllexport) void SetFunCallBack(FunCallBack funint p)
{
OnEvent=fun;
par=p;
}
//定义C语言类型导出函数
extern “C“ __declspec(dllexport) int add(int i)
{
//下面这段代码用来触发事件如果仅仅是使用add函数的话可以删除.
if (i==110){
if (OnEvent){
//当传入参数为110而且已经定义过回调函数的话则触发事件.
OnEvent(120);
}
}
return i*2;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-05-10 17:05 qtdll\
目录 0 2014-05-10 17:06 qtdllTestC\
文件 963 2014-05-10 15:55 qtdllTestC\main.c
文件 244139 2014-05-10 17:06 qtdllTestC\main.exe
文件 63488 2014-05-10 15:56 qtdllTestC\qtdll.dll
目录 0 2014-05-10 11:18 qtdllTestNET\
目录 0 2014-05-10 16:21 qtdllTestNET\qtdllTestNET\
文件 925 2014-05-10 11:18 qtdllTestNET\qtdllTestNET.sln
文件 10752 2014-05-10 16:21 qtdllTestNET\qtdllTestNET.suo
目录 0 2014-05-09 14:42 qtdllTestNET\qtdllTestNET\bin\
目录 0 2014-05-09 14:42 qtdllTestNET\qtdllTestNET\bin\Debug\
文件 16384 2014-05-09 14:42 qtdllTestNET\qtdllTestNET\bin\Debug\qtdllTest.exe
文件 11776 2014-05-09 14:42 qtdllTestNET\qtdllTestNET\bin\Debug\qtdllTest.pdb
文件 5632 2005-12-08 14:51 qtdllTestNET\qtdllTestNET\bin\Debug\qtdllTest.vshost.exe
目录 0 2014-05-09 14:43 qtdllTestNET\qtdllTestNET\bin\Release\
文件 63488 2014-05-10 15:56 qtdllTestNET\qtdllTestNET\bin\Release\qtdll.dll
文件 16384 2014-05-10 16:21 qtdllTestNET\qtdllTestNET\bin\Release\qtdllTest.exe
文件 13824 2014-05-10 16:21 qtdllTestNET\qtdllTestNET\bin\Release\qtdllTest.pdb
文件 5632 2005-12-08 14:51 qtdllTestNET\qtdllTestNET\bin\Release\qtdllTest.vshost.exe
目录 0 2014-05-10 11:18 qtdllTestNET\qtdllTestNET\obj\
目录 0 2014-05-09 14:42 qtdllTestNET\qtdllTestNET\obj\Debug\
文件 16384 2014-05-09 14:42 qtdllTestNET\qtdllTestNET\obj\Debug\qtdllTest.exe
文件 11776 2014-05-09 14:42 qtdllTestNET\qtdllTestNET\obj\Debug\qtdllTest.pdb
目录 0 2014-05-09 14:42 qtdllTestNET\qtdllTestNET\obj\Debug\TempPE\
文件 524 2014-05-10 11:16 qtdllTestNET\qtdllTestNET\obj\qtdllTest.csproj.FileListAbsolute.txt
文件 297 2014-05-10 17:36 qtdllTestNET\qtdllTestNET\obj\qtdllTestNET.csproj.FileListAbsolute.txt
目录 0 2014-05-10 16:21 qtdllTestNET\qtdllTestNET\obj\Release\
文件 16384 2014-05-10 16:21 qtdllTestNET\qtdllTestNET\obj\Release\qtdllTest.exe
文件 13824 2014-05-10 16:21 qtdllTestNET\qtdllTestNET\obj\Release\qtdllTest.pdb
目录 0 2014-05-10 11:17 qtdllTestNET\qtdllTestNET\obj\Release\Refactor\
目录 0 2014-05-09 14:42 qtdllTestNET\qtdllTestNET\obj\Release\TempPE\
............此处省略243个文件信息
- 上一篇:精选精搜C++30道必背经典+100道题库
- 下一篇:魔兽ID提取器第二版源码
相关资源
- MFC 对话框封装Dll简单实现
- VC+++聊天室程序设计
- (LSB算法)数字水印的嵌入和提取V
- txt文件分割源代码vc6
- 基于VC++的FFT频谱分析
- VC++MFC小游戏开发教程+扫雷+五子棋+俄
- VC++鼠标画直线程序
- 简单的几何图形识别程序源代码
- 计算机网络课程实验:FTP协议的实现
- 基于VC6.0+VFW笔记本摄像头简单应用
- vc++2010旗舰版安装包.zip
- 抽奖程序源代码
- 基于VC++6.0的UDP通讯
- VC6补丁FileTool
- Access2003 数据库 VC MFC 图书管理系统
- 《Visual C++实践与提高-图形图像编程篇
- VC++斗地主单机版完整代码
- 基于VC++的信号发生器
- 用VC++实现多媒体播放器
- MFC窗口托盘,最小化到托盘,显示图
- 学生成绩管理系统~ado mfc vc6.0
- VC++ 共享内存读写操作
- VC++中Opengl实现建筑物虚拟漫游
- VC++ 模拟太阳系行星运行
- 遥感图像变化检测 VC++
- VC++三次样条插值&贝塞尔曲线&GDI+平滑
- VC++2008开发Windows蓝牙通信程序
- 完美简体中文VC6汉化补丁
- VC++实现了基于图像小波变换的图像融
- Visual Assist X 10.3.1561.0VC6助手最优最稳
评论
共有 条评论