不多说直接上代码
2018年10月31更新,最近发现了这个问题的终极解决方式,使用类传给void*
//创建一个类保存所有要传递的参数
class CANshu
{
private: //成员访问限制符
public: //public设置之前的成员都是上面所设置的私有的
int canshu1;
float canshu2;
Mat img;
protected:
}
//配置参数类
CANshu canshu;
canshu.canshu1= 1;
canshu.canshu2= 1.526;
//传递类给void *
void * heihei = & canshu;
//获取新的参数
CANshu newCanShu = *(CANshu *)heihei ;
过去的内容,可以不用看了
函数test只有一个传入参数void *,但是我们有两个需要传入的参数
void test(void *names)
{
char name[128];
strcpy_s(name, 128 , (char *)names);
char name1[128];
strcpy_s(name1,(char *) names+128);
cout << name;
cout << name1;
waitKey(0);
}
我们可以将两个参数合并成一个参数指针
int main()
{
char new_name[128];
strcpy_s(new_name, "www.baidu.com");
char new_name1[128];
strcpy_s(new_name1, "www.google.com");
char new_names[300];
strcpy_s(&new_names[0], strlen(new_name) + 1, new_name);
strcpy_s(&new_names[128], strlen(new_name1) + 1, new_name1);
test(new_names);
}
程序输出,成功输入了两个参数
www.baidu.com
www.google.com