各位大侠,这个问题怎么解决?

DentistryDoctor 2004-08-13 09:57:03
我声明了形如下面的函数

void FunctionName(...);

请问我怎么在函数体中知道调用端传入了多少个参数,参数类型和参数值呢?

用汇编解决也行。
...全文
160 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
DentistryDoctor 2004-08-13
  • 打赏
  • 举报
回复
楼上说的这嘛还有点用。
gwinner 2004-08-13
  • 打赏
  • 举报
回复
参考一下这个:
http://www.vchelp.net/itbookreview/view_paper.asp?paper_id=824
oyljerry 2004-08-13
  • 打赏
  • 举报
回复
gz一下
howtotell 2004-08-13
  • 打赏
  • 举报
回复
调用的时候填入的参数个数不对连编译都是通过不了的啊!还判断什么?困惑,困惑.
memory_xj 2004-08-13
  • 打赏
  • 举报
回复
有这种技术吗?就是用汇编也必须将固定参数压入堆栈或寄存器中,然后根据参数类型和个数弹出才能调用成功哪。也没有见过系统用一个结构什么的将函数参数类型和个数保存,这个形式参数类型和个数,不根据这个lpFormat系统是无法知道的。呵呵,一家之言。
DentistryDoctor 2004-08-13
  • 打赏
  • 举报
回复
不是,是调试工具,不知道函数声明的情况下倾印参数类型及参数值,可以实现么?VC++不就实现了么?
blue2moon 2004-08-13
  • 打赏
  • 举报
回复
不懂,你在写DLL库?
DentistryDoctor 2004-08-13
  • 打赏
  • 举报
回复
上面的函数,前面传入了一个参数LPCTSTR lpFormat,根据lpFormat确定参数值,但我需要的是不传入lpFormat,也取得参数个数,类型和值.
无敌魔仙 2004-08-13
  • 打赏
  • 举报
回复
在DDK里看见过这个函数,估计对你有用
VOID __cdecl
AppendTextBuffer (
LPCTSTR lpFormat,
...
)
{
va_list arglist;

va_start(arglist, lpFormat);

// Make sure we have a healthy amount of space free in the buffer,
// reallocating the buffer if necessary.
//
if (TextBufferLen - TextBufferPos < BUFFERMINFREESPACE)
{
CHAR *TextBufferTmp;

TextBufferTmp = REALLOC(TextBuffer, TextBufferLen+BUFFERALLOCINCREMENT);

if (TextBufferTmp != NULL)
{
TextBuffer = TextBufferTmp;
TextBufferLen += BUFFERALLOCINCREMENT;
}
else
{
// If GlobalReAlloc fails, the original memory is not freed,
// and the original handle and pointer are still valid.
//
OOPS();

return;
}
}

// Add the text to the end of the buffer, updating the buffer position.
//
TextBufferPos += wvsprintf(TextBuffer + TextBufferPos,
lpFormat,
arglist);
}
DentistryDoctor 2004-08-13
  • 打赏
  • 举报
回复
怎么没人回答,顶一下!

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧