社区
C++ 语言
帖子详情
64位系统中运行时函数动态参数数量怎么实现
QunKangLi
2017-04-10 10:34:44
加载一个dll,接口函数的名称,参数的数量类型是xml中读出来的。现在w32系统下的实现方式是用内联汇编将参数入栈,然后不带参数调用接口函数,最后汇编恢复堆栈指针。
现在需要升级系统到64位,64位不支持内联汇编并使用fastcall.应该怎么搞能实现功能?
...全文
154
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函数
继续测试中
PowerBI系列之DAX
函数
专题
RANKX详解 进阶-分组内排名的
实现
和理解迭代
函数
进阶-TopN/BottomN和Others的
实现
进阶-TopN
中
实现
动态
指标 进阶-TopN
中
实现
N的
动态
进阶-分组内
动态
TopN和Others 进阶-商品折上折-迭代
函数
SUMX详解 ...
CUDA 核
函数
运行
参数
CUDA核
函数
运行
参数
调用定义的和
函数
时采用类似于下面的形式: kernel<<<1,1>>>(param1,param2,...) “<<< >>>”
中
参数
的作用是告诉我们该如何启动核
函数
(比如如何设置...
Matlab运行自定义
函数
时显示“输入
参数
的数目不足“
在使用Matlab编程时,如果你定义了一个自定义
函数
,并且在调用该
函数
时出现了"输入
参数
的数目不足"的错误提示,那么这意味着你在调用
函数
时没有提供足够
数量
的输入
参数
。总结一下,当在Matlab
中
调用自定义
函数
时出现...
c语言
函数
任意个数
参数
的
实现
c语言在写
函数
时,如果不确定要输入多少
参数
,标准库提供了一种方式输入任意长度
参数
。 二、使用方法 1、添加头文件:#include <stdarg.h> 2、定义:
参数
上面用“…”代表任意个
参数
,省略号之前的那个
参数
是 ...
C++ 语言
64,637
社区成员
250,559
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章