小编Ran*_*kar的帖子

动态调用带有varargs参数的C函数

我正在使用C编程来对抗第三方库(在HP/Mercury Loadrunner中),该库为其中一个函数提供了varargs样式的可变大小参数列表.我想调用这个函数,但我不知道我将拥有多少个参数.

我的一个前任所做的功能在某种程度上起了作用,但这里的问题是这个函数假定最坏的情况(超过3000个参数)和手动代码.

为了阐明,这是代码的(开头).我们称之为的功能是web_submit_data().HTTP将发布一组表单数据.在处理具有任意数量字段的动态生成的表单时,会出现此实现.(从原版中清理了一下,手动编码索引也是如此......)


web_submit_data_buffer_gazillion_items( const char *bufferName, const char *bufferValue)
{
    const int size = 129;
    int i = 0;
    int j = 11;

    web_submit_data(&bufferName[i++ * size], //"some form"
                &bufferName[i++ * size], //"Action=https://blah.blah/form");
                &bufferName[i++ * size], //"Method=POST");
                &bufferName[i++ * size], //"TargetFrame=");
                &bufferName[i++ * size], //"RecContentType=text/html");
                &bufferName[i++ * size], //"Referer=https://blah.blah/index.html");
                &bufferName[i++ * size], //"Snapshot=t1.inf");
                &bufferName[i++ * size], //"Mode=HTML");
                ITEMDATA,  // missing in action: indexes 8 through 10
                &bufferName[j * size],&bufferValue[j++ * size], ENDITEM, 
                &bufferName[j * size],&bufferValue[j++ * size], …
Run Code Online (Sandbox Code Playgroud)

c

15
推荐指数
3
解决办法
1万
查看次数

标签 统计

c ×1