发布网友 发布时间:2022-04-22 10:32
共2个回答
热心网友 时间:2023-09-26 18:54
WINAPI和CALLBACK这两个宏有什么区别呢?_stdcall_cdecl_pascal_fastcall这些关键字是什么意思,有什么区别呢?
首先看MSDN里给出的解释,不过有些语焉不详哦WINAPI
·UseinplaceofFARPASCALinAPIdeclarations.IfyouarewritingaDLLwithexportedAPIentrypoints,youcanusethisforyourownAPIs.CALLBACK
·UseinplaceofFARPASCALinapplicationcallbackroutinessuchaswindowproceresanddialogproceres.再看看到底这两个宏的内容是什么吧VC:WINDEF.h
#defineCALLBACKPASCAL//=_pascal,VC已经不支持直接使用_pascal了
#defineWINAPICDECL//=_cdeclBCB:windef.h
#defineCALLBACK__stdcall
#defineWINAPI__stdcall引出了cdeclstdcall等一些可能很少见的关键字那么cdecl、pascal、stdcall、fastcall等修饰符号到底什么意思呢?
非常简单,就是关于堆栈的一些说明,首先是函数参数压栈顺序,其次是
压入堆栈的内容由谁来清除,调用者还是函数自己?
这些开关用来告诉编译器产生什么样的汇编代码。下面把区别列表如下:DirectiveParameterorderClean-upPassesparametersinregisters?
registerLeft-to-rightRoutineYes
pascalLeft-to-rightRoutineNo
cdeclRight-to-leftCallerNo
stdcallRight-to-leftRoutineNo
safecallRight-to-leftRoutineNo简单说明:__cdecl是C/C++和MFC程序默认使用的调用约定,也可以在函数声明时加上__cdecl关键字来手工指定。采用__cdecl约定时,函数参数按照从右到左的顺序入栈,并且由调用函数者把参数弹出栈以清理堆栈。因此,实现可变参数的函数只能使用该调用约定。由于每一个使用__cdecl约定的函数都要包含清理堆栈的代码,所以产生的可执行文件大小会比较大。__cdecl可以写成_cdecl。
__stdcall调用约定用于调用Win32API函数。采用__stdcal约定时,函数参数按照从右到左的顺序入栈,被调用的函数在返回前清理传送参数的栈,函数参数个数固定。由于函数体本身知道传进来的参数个数,因此被调用的函数可以在返回前用一条retn指令直接清理传递参数的堆栈。__stdcall可以写成_stdcall。
__fastcall约定用于对性能要求非常高的场合。__fastcall约定将函数的从左边开始的两个大小不大于4个字节(DWORD)的参数分别放在ECX和EDX寄存器,其余的参数仍旧自右向左压栈传送,被调用的函数在返回前清理传送参数的堆栈。__fastcall可以写成_fastcall。
·特别说明
1.在默认情况下,采用__cdecl方式,因此可以省略.
2.WINAPI一般用于修饰动态链接库中导出函数
3.CALLBACK仅用于修饰回调函数
4.你可能已经发现,VC下和BCB下对WINAPI的定义不同,那么你至少理解了
为什么不能直接从BCB下调用VC的dll的一个原因了。
热心网友 时间:2023-09-26 18:54
摩卡冰沙 1.冰咖啡(一人份) 2.香草冰淇淋三大匙 3.巧克力糖浆适量 4.碎冰块适量 5.发泡鲜奶油适量 制作方法 (一人份) : 1. 将适量冰块放入果汁机,再将无糖的冰咖啡倒入 2. 倒入约2大匙的巧克力糖浆 3. 再将香草冰淇淋加入,可增加甘甜风味,可依个人喜好增减 4. 再加些碎冰块,搅拌20~30秒 5. 倒入玻璃杯後,加入适量发泡鲜奶油及巧克力糖浆 欧蕾冰咖啡 1. 将16g咖啡粉+260cc的水以义大利蒸气式取得浓缩咖啡。或以120cc的水冲泡40g咖啡粉(非义大利式的冲泡器具),也可得浓缩咖啡。 2. 先加入适当的糖於浓缩咖啡中,然後准备二个玻璃杯,并装满冰块。 3. 将事先冲泡好的浓缩咖啡徐徐倒入玻璃杯并搅拌均匀。 3. 依照个人的喜好程度慢慢加入鲜奶(鲜奶油也可以),即可享用一杯清凉香醇的欧蕾冰咖啡了。 绿茶咖啡 绿茶的清香将我们的视线从遥远的国度拉了回来,日本是一个善于吸收与融合的民族,这一次,他们又在西方的咖啡与东方的绿茶之间找到了平衡点,也为爱喝茶的朋友们提供了新宠。这是一道纯东洋风味的咖啡,绿茶的幽雅清香、咖啡的浓郁厚重交流激荡。 具有健康取向的新流行咖啡,带着淡淡的绿茶香,颇具东洋风味,你不妨也来试试看! 特色:采用日本进口绿茶粉,带有独特绿茶香及甘甜味。 诀窍:绿茶粉具保健疗效,份量可随意增减。 味道:苦、醇、香。 材料:浓咖啡1杯、糖包、鲜奶油适量、绿茶粉末少许。 程序:浓咖啡1杯,约8分满,上面旋转加入一层鲜奶油,再洒上少许绿茶粉末,附上糖包即可上桌。(适合饮用时间:全天) 爪哇摩卡咖啡 特色:爪哇咖啡的苦、醇,加上巧克力糖浆的甜浓,使爪哇咖啡更甘醇顺口,很受女性欢迎。 诀窍:巧克力糖浆勿多加,以免太甜。 味道:甘甜。 材料:热爪哇咖啡1杯、冰糖包、巧克力糖浆1/4~1/2 OZ、奶油球1个。 程序:热爪哇咖啡1杯,约8分满,加入1包糖、1/4~1/2巧克力糖浆,最上面再倒入1个奶油球。(适合饮用时间:餐后、下午) 土耳其 咖啡 至今仍采用原始煮法,复杂的工艺带着几许异国情调的神秘色彩。从中,我们可以窥视到奥斯曼帝国盛极一时。 土耳其咖啡制作方法 (一人份) 1. 将12g深烘焙的咖啡豆,与适量的肉桂或豆蔻等香料一起细磨。(视个人喜好而定,也可以不加) 2. 将上列细粉放入锅内,加水煮沸约二十秒。 3. 待咖啡渣沈淀在锅底,再轻轻地将上层澄清的咖啡倒出。 3. 其喝法可加柠檬或蜂蜜,也可以口中含著土耳其糖、奶油糖或巧克力等来喝咖啡,味道相当的特殊。 马萨克朗 浓缩咖啡机制法:咖啡粉10公克 水量50cc 无糖气泡饮料(例:沛绿雅) 冰块适量 柠檬汁 10cc 一般咖啡制法:咖啡粉30公克 水量120cc 无糖气泡饮料(例:沛绿雅) 冰块适量 柠檬汁 10cc 制作方法 咖啡煮好後,倒入装满冰块的的玻璃杯中约半杯,将气泡饮料与柠檬汁加入即可马萨克朗的特色,是不加糖,倘若希望甜一点,可以使用糖浆或将气泡饮料改为 7-up皆可 瑞士巧克力咖啡 巧克力一直是欧洲人尤其是瑞士人的最爱。天冷的时候,欧美人士都习惯皮包里放些巧克力糖,以备充饥耐寒的不时之需。将巧克力加在咖啡里可以调和苦味,补充热量,巧克力咖啡现在已经成为欧洲人在山上滑雪时最爱的热饮了。 材料 浓缩咖啡机制法:咖啡粉7公克 水量120cc 含糖巧克力粉15g 一般咖啡制法:咖啡粉12公克 水量120cc 或巧克力糖浆 30cc 制作方法 : 1. 将巧克力粉或糖浆放入咖啡杯内 2. 将刚煮好的咖啡冲入杯内约八、九分满,搅匀即成 维也纳咖啡 “Viennese”乃奥地利最著名的咖啡,以浓浓的鲜奶油和巧克力的甜美风味迷倒全球人士。雪白的鲜奶油上,洒落五色缤纷的七彩米,扮相非常漂亮;隔着甜甜的巧克力糖浆、冰凉的鲜奶油啜饮滚烫的热咖啡,更是别有风味! 特色:源于奥地利的欧风咖啡,具有三段式变化口味,适合喜欢甜食的人。 诀窍:巧克力糖浆与七彩米切勿多加,否则会太甜。 味道:香甜可口。 材料:热咖啡1杯、鲜奶油适量、巧克力糖浆适量、七彩米少许、糖包。 程序:热咖啡1杯,约8分满,上面以旋转方式加入鲜奶油,再淋上适量巧克力糖浆,最后洒上七彩米,附糖包上桌。 彩虹冰咖啡 材料: 冰咖啡120ml 蜂蜜15ml 鲜奶油适量 红石榴汁10ml 草莓冰淇淋1小球 碎冰160g 红樱桃一颗 做法: 1 咖啡煮好,冷却备用 2 将蜂蜜加入咖啡中,以酒吧长勺轻轻搅拌 3 倒入红石榴汁 4 将碎冰倒入杯中,再倒入冰咖啡 5 挤上一圈鲜奶油,加上草莓冰淇淋 拉丁冰咖啡 材料: 冰咖啡120ml 果糖30ml 鲜奶油适量 绿薄荷酒30ml 碎冰180g 做法: 1 咖啡煮好,冷却备用 2 将碎冰倒入杯中,再倒入冰咖啡 3 挤上一层鲜奶油,淋上绿薄荷酒 伊甸园冰咖啡 材料: 冰咖啡120ml 果糖30ml 白兰地酒5ml 鲜奶油适量 绿薄荷酒30ml 碎冰180g 棉花糖3~4个 巧克力膏少许 做法: 1 咖啡煮好,加入果糖搅拌,冷却备用 2 将碎冰倒入杯中,再倒入冰咖啡和白兰地酒 3 挤上一层鲜奶油,加上棉花糖、巧克力膏 水果咖啡 材料: 冰咖啡120ml 果糖30ml 白兰地酒5ml 鲜奶油适量 绿薄荷酒30ml 碎冰180g 棉花糖3~4个 棕可可酒10ml 综合水果切丁适量 做法: 1 咖啡煮好,加入果糖搅拌,冷却备用 2 将碎冰倒入杯中,再倒入冰咖啡 3 加入棕可可酒 4 各式水果丁围在杯边 5 挤上一层鲜奶油 卡尔亚冰咖啡 材料: 冰咖啡120ml 果糖30ml 白汽水100ml 鲜奶油适量 白柑香酒7ml 巧克力薄片少许 做法: 1 咖啡煮好,加入果糖搅拌,冷却备用 2 杯中倒入白柑香酒,再倒入冰咖啡和白汽水 3 挤上一层鲜奶油,巧克力薄片