QT调用QQ截屏工具
2013-10-21 18:18
260 查看
今天折腾了一天,开始以为被人误导使用qq2008里面的cameradll.dll动态链接库,本人还卸载了QQ2013下了个qq2008来装上,安装好后使用里面的cameradll.dll。将其考在程序目录下面,和exe文件放在一堆,调用里面的camerasubarea(),始终出错。最后网上查了下,说是缺少依赖库,然后又下了十几个相关的dll文件,拷到响应目录下,尼玛,还是不行。在探索过程中看到网上有专门的cameradll下载,然后自己下了一个下来,放到程序里,OK了。尼玛,又搞了一天!傻逼了。其实只要将下载的cameradll拷贝到system32目录下就OK了。
我是用QT写得按钮点击,然后调用dll里面的函数截屏,然后将截屏文件保存到本地,代码如下:
上面是动态链接库的显示调用,不清楚的朋友可以网上查查dll的显示调用和隐式调用,当然隐式要方便些,不存在什么使用函数指针。
我是用QT写得按钮点击,然后调用dll里面的函数截屏,然后将截屏文件保存到本地,代码如下:
typedef int (__stdcall *CAMERASUBAREA)(int a);//这个是函数指针,定义为全局
//截图按钮 void jietu::on_btcapture_clicked() { hHandle = NULL; hHandle = LoadLibrary(L"CameraDll.dll"); if (hHandle==NULL) { int i = GetLastError(); return; } CAMERASUBAREA pCameraSubArea = (CAMERASUBAREA)GetProcAddress(hHandle,"CameraSubArea"); if (pCameraSubArea == NULL) { int i = GetLastError(); return; } int i = pCameraSubArea(1); if (i)//截图成功 { QString filename = QFileDialog::getSaveFileName(this, tr("Save Image"),"",tr("*.bmp;;*.png;;*jpg;;*.tif;;*.gif")); if (!filename.isEmpty()) { QClipboard* border = QApplication::clipboard(); QImage image = border->image();//获取图像 if (!image.save(filename))//保存 { QMessageBox::information(this, tr("Failed to save"), tr("Faild to save")); return; } } } FreeLibrary(hHandle); }
上面是动态链接库的显示调用,不清楚的朋友可以网上查查dll的显示调用和隐式调用,当然隐式要方便些,不存在什么使用函数指针。
相关文章推荐
- H264解码器源码(Android 1.6 版和QT都可以调用)
- VC生成的DLL给QT的EXE调用时lib路径问题小结
- Qt 调用打印机参考
- Qt中图片调用(1)
- 手机web页面调用手机QQ实现在线聊天的效果
- <Qt>windows平台调用mplayer播放视频
- WAP调用微信支付https://pay.weixin.qq.com/wiki/doc/api/wap.php?chapter=15_1
- Qt中一个.cpp类的函数调用另一个.cpp中类的函数的方法
- QtAndroid详解(5):JNI调用Android系统功能(2)
- QT中调用外部程序:QProcess的使用
- Qt 编写DLL 并调用
- 基于Qt的类似QQ好友列表抽屉效果的实现
- MFC调用QT编写的DLL动态库
- VS编译QT程序调用SQLite数据库研究
- Qt调用Windows Webbrowser控件,调用JS方法
- Qt一个工程调用另一个工程的类成员变量
- QT 调用 DLL 方法(三种方法)
- Qt4.8.2 Qt调用dll
- QQ截图调用工具
- qt 应用程序中使用 close系统调用函数 注意问题