微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > 虚拟仪器 > call library fuction node 配置中calling convention选择c或st

call library fuction node 配置中calling convention选择c或st

时间:12-13 整理:3721RD 点击:
rt
.106

这是两种软件开发工具对dll的调用规则
一般情况下默认的为C 规则,这种规则不需在函数前加关键字
而采用_stdcall规则即standard Windows calling 规则则必须在函数前加关键字_stdcall
,且必须在.def中进行函数声明!
上面说的是在编译dll时用到的
至于在调用时选用那种就要看你调用的dll中的函数属于那种类型了。
.197
.197

确切的说是函数调用时的参数传递方式.从最基础的角度看(比如汇编),调用函数的时候参
数是通过堆栈来传递的.参数先入栈,然后跳转到函数代码.函数一开始的地方就是参数出栈
. 这些工作编译器会替你做.不过,不同语言的编译器是按不同的顺序来操作的.
一种是参数从左到右入栈.很多语言都这样用.一般叫pascal方式.另外一种是C语言的方式
,参数从右到左入栈.dll是编译好的二进制代码,所以调用的时候必须按dll编译时候取的规
则传递参数.
右到左的规则好像就C用.所以,windows规定的标准调用方式是pascal方式.所以用C写dll时
候往往建议用_stdcall 关键字来改变缺省的调用规则.不是必须的:) 如果是必须的话,调
用dll的时候反而没有麻烦了.呵呵.
.70

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top