社区
C++ 语言
帖子详情
64位系统中运行时函数动态参数数量怎么实现
QunKangLi
2017-04-10 10:34:44
加载一个dll,接口函数的名称,参数的数量类型是xml中读出来的。现在w32系统下的实现方式是用内联汇编将参数入栈,然后不带参数调用接口函数,最后汇编恢复堆栈指针。
现在需要升级系统到64位,64位不支持内联汇编并使用fastcall.应该怎么搞能实现功能?
...全文
171
3
打赏
收藏
64位系统中运行时函数动态参数数量怎么实现
加载一个dll,接口函数的名称,参数的数量类型是xml中读出来的。现在w32系统下的实现方式是用内联汇编将参数入栈,然后不带参数调用接口函数,最后汇编恢复堆栈指针。 现在需要升级系统到64位,64位不支持内联汇编并使用fastcall.应该怎么搞能实现功能?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
QunKangLi
2017-04-10
打赏
举报
回复
支持不同长度参数,但浮点数和整数混合没搞定,因为浮点数参数用的是mmx#寄存器,整数参数用常规寄存器
赵4老师
2017-04-10
打赏
举报
回复
调用约定
https://msdn.microsoft.com/zh-cn/magazine/9b372w95.aspx
赵4老师
2017-04-10
打赏
举报
回复
使用ml64位版,仿照编译器自带的若干.asm例子,编写64位外部汇编代码。
QunKangLi
2017-04-10
打赏
举报
回复
目前的思路是:接口函数定义为一个64个参数的函数,使用xml的格式数据给前几个有效参数赋值。正在测试不同参数的表现……
QunKangLi
2017-04-10
打赏
举报
回复
前4个参数赋值到double变量,调用一个占位函数用于设置mmx寄存器,然后在调用接口函数,好像可行。
设需要使用参数n1 f2 n3 f4,那么可以:
void fum_dummy(){;}
……
np1=n1;np2=f2;np3=n3;np4=f4;
fp1=n1;fp2=f2;fp3=n3;fp4=f4;
fun_dummy(fp1,fp2,fp3,fp4);
fun(np1,np2,np3,np4);//dll函数
继续测试中
c++ primer第五版第6章答案
c++ primer第五版第6章答案
c++
中
的
函数
动态
参数
设置
首先引用“cstdarg”头文件
CUDA 核
函数
运行
参数
CUDA核
函数
运行
参数
调用定义的和
函数
时采用类似于下面的形式: kernel<<<1,1>>>(param1,param2,...) “<<< >>>”
中
参数
的作用是告诉我们该如何启动核
函数
(比如如何设置线程)。 下面我们先直接介绍
参数
概念,然后详细说明其意义。 1. 核
函数
运行
参数
当我们使用 gloabl 声...
python
函数
位置
参数
,关键字
参数
,默认
参数
,逆向
参数
Python位置
参数
位置
参数
,有时也称必备
参数
,指的是必须按照正确的顺序将实际
参数
传到
函数
中
,换句话说,调用
函数
时传入实际
参数
的
数量
和位置都必须和定义
函数
时保持一致。 实参和形
参数
量必须一致 在调用
函数
,指定的实际
参数
的
数量
,必须和形式
参数
的
数量
一致(传多传少都不行),否则python解释器会抛出 TypeError 异常,并提示缺少必要的位置
参数
。 例如: def girth(width , height): return 2 * (width + height) #调用
函数
时,必须传
Javascript
参数
个数可变的
函数
动态
传人和取得
参数
js
中
的
函数
是一个对象,一个Function对象(
函数
参数
列表及
函数
主体事实上只是Function对象的构造
函数
的
参数
而已),跟其他对象一样可以在
运行时
增加属性、删除属性,
函数
参数
是可变的,比如定义
函数
时定义的
参数
列表只有3个
参数
,调用时你却可以只传2个
参数
,或超过3个
参数
,通过
函数
对象的length属性可以得到
函数
定义的形参个数,而
函数
调用时的实际
参数
列表则可以通过
函数
的arguments属性(
C++ 语言
65,208
社区成员
250,517
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章