qt cef嵌入web
C++代码如下:
.h头文件
#pragma once
#ifdef DLLTestAPI
#else
#define DLLTestAPI _declspec(dllimport)
#endif
int DLLTestAPI __stdcall add(int, int);
int DLLTestAPI __cdecl subtract(int, int);.cpp代码文件
#define DLLTestAPI _declspec(dllexport)
#include "Test.h"
int __stdcall add(int a, int b)
{
return a + b;
}
int __cdecl subtract(int a, int b)
{
return a - b;
}可以看到 add方法是使用__stdcall修饰的,而subtract方法是使用__cdecl修饰的。
反汇编后得到的汇编代码如下
add方法:
100115D0 55 PUSH EBP
100115D1 8BEC MOV EBP,ESP
100115D3 81EC C0000000 SUB ESP,0C0
100115D9 53 PUSH EBX
100115DA 56 PUSH ESI
100115DB 57 PUSH EDI
100115DC 8DBD 40FFFFFF LEA EDI,DWORD PTR SS:[EBP-C0]
100115E2 B9 30000000 MOV ECX,30
100115E7 B8 CCCCCCCC MOV EAX,CCCCCCCC
100115EC F3:AB REP STOS DWORD PTR ES:[EDI]
100115EE 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
100115F1 0345 0C ADD EAX,DWORD PTR SS:[EBP+C]
100115F4 5F POP EDI
100115F5 5E POP ESI
100115F6 5B POP EBX
100115F7 8BE5 MOV ESP,EBP
100115F9 5D POP EBP
100115FA C2 0800 RETN 8subtract方法:
10011610 55 PUSH EBP
10011611 8BEC MOV EBP,ESP
10011613 81EC C0000000 SUB ESP,0C0
10011619 53 PUSH EBX
1001161A 56 PUSH ESI
1001161B 57 PUSH EDI
1001161C 8DBD 40FFFFFF LEA EDI,DWORD PTR SS:[EBP-C0]
10011622 B9 30000000 MOV ECX,30
10011627 B8 CCCCCCCC MOV EAX,CCCCCCCC
1001162C F3:AB REP STOS DWORD PTR ES:[EDI]
1001162E 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
10011631 2B45 0C SUB EAX,DWORD PTR SS:[EBP+C]
10011634 5F POP EDI
10011635 5E POP ESI
10011636 5B POP EBX
10011637 8BE5 MOV ESP,EBP
10011639 5D POP EBP
1001163A C3 RETN大家已经看到了,他们的唯一区别是:
使用__stdcall修饰的add方法,最后的RETN指令的操作数是8,而使用__cdecl修饰的subtract方法,最后的RETN指令没有操作数。
RETN指令的操作数为什么是8呢,原因也很简单,就是add方法有两个int参数,也就是说压栈的时候压入了两个字节,正好8位,RETN 8的意思应该是让栈顶指针ESP向后移动8位。
http://blog.csdn.net/songjinshi/article/details/8442829
qt cef嵌入web的更多相关文章
- qt cef嵌入web(二)
在qt cef嵌入web文章中已经讲述了怎么把cef页面嵌入到qt程序中,但是这样并不完美,因为如果需要在多个窗口上创建cef浏览器部件的话,在 消息监听部分没有办法做区分多个浏览器事件,在这篇文章中 ...
- qt添加cef库嵌入web [转]
qt cef嵌入web 原文http://blog.sina.com.cn/s/blog_9e59cf590102vnfc.html 最近项目需要,研究了下libcef库. Cef(Chromium ...
- 两个基于C++/Qt的开源WEB框架
1.tufao 项目地址: https://github.com/vinipsmaker/tufao 主页: http://vinipsmaker.github.io/tufao/ 介绍: Tufão ...
- 嵌入Web资源的方法
可以将js .图片.css等嵌入Assembly中,这样就不用将文件在aspx中写了,特别适合做自定义控件的时候将控件用到的资源打包. 将文件放到项目的合适路径,比如jpg文件所在路径的namespa ...
- QT中嵌入SDL
原地址:http://www.qtcn.org/bbs/read.php?tid=23926 前段时间在做一个音视频编码板卡的PC跨平台程序,使用QT框架,其中有块功能是往QT里嵌入SDL,来播放YU ...
- Qt实现嵌入桌面的半透明窗口 good
这儿用上了前面一文提到的函数findDesktopIconWnd().见: http://mypyg.blog.51cto.com/820446/263349 一.将Qt窗口嵌入到桌面中.声明一个最简 ...
- Xamarin.Android 嵌入web端界面
在程序中嵌入Web端界面. 首先在前台界面上创建一个webview <android.webkit.WebView android:layout_width="match_parent ...
- Unity3d嵌入web网页
应用场景 程序中的界面风格 UI内容等相关内容需要很容易方便的跟新替换,不使用unity传统的热加载方式,也不想使用和H5等做混合APP的时候, 就用嵌入web来实现. 假如我想替换某个背景图,一般来 ...
- WinForm嵌入Web网页的解决方案
企业级信息化系统绝大部分采用BS架构实现,如门户网站.OA系统.电商网站等,通过浏览器输入Web网址即可访问,对于使用者来说非常便捷,对于开发维护者来说也非常方便,程序维护只需更新服务器即可,使用者无 ...
随机推荐
- C# http 发送post或get请求
/// <summary> /// 向服务器提交XML数据 /// </summary> /// <param name="url">远程访问的 ...
- ClassLoader类加载机制
一.类加载器 类加载器(ClassLoader),顾名思义,即加载类的东西.在我们使用一个类之前,JVM需要先将该类的字节码文件(.class文件)从磁盘.网络或其他来源加载到内存中,并对字节码进行解 ...
- iOS @try
try{ //1:抛出异常的代码 //2:代码 }catch(){ //3:代码 //4:抛出异常 }finally{ //5:代码 } //6:代码要明确的一点是:不管try是否抛出异常,final ...
- splice JavaScript Array 对象
定义和用法 splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目. 注释:该方法会改变原始数组. 语法 arrayObject.splice(index,howmany,item1, ...
- Android 第三方
把优酷.土豆等取出它们真是的视频播放地址:http://vparser.com/ volley 项目地址 https://github.com/smanikandan14/Volley-demo (1 ...
- JAVA7遍历文件夹
在JAVA7中提供了新的遍历文件的方法,比原有File类的递归遍历效率要好大约30%左右. 测试结果: 测试用的File类的递归,是经过对比测试几种方法,找出相对效率较好的来和JAVA7进行测试. 1 ...
- 【wikioi】1002 搭桥(dfs+最小生成树)
http://wikioi.com/problem/1002/ 今天开始又开始刷水了哈T_T.照着hzwer神犇的刷题记录刷!!! 题解: 一开始我也不会,但是我想到了直接爆搜T_T. 好吧,题解. ...
- OpenCV 2.4.11 VS2010 Configuration
Add in the system Path: C:\opencv\build\x86\vc10\bin; Project->Project Property->Configuration ...
- 微课程--Android--基础控件的使用
view viewgroup是一种特殊的view,里面可以包含其他的view 如何生成view: 1 在代码里动态生成 2 写在XML里面 view的常见属性--宽度 wrap_content 随着内 ...
- 五、Pillar数据管理中心
Pillar是数据管理中心. Pillar在saltstack中主要作用是存储和定义一些配置管理中需要的信息(比如:软件版本,用户名,密码等) 修改pillar相关配置文件: [root@super6 ...