自己写的*.dll用结构体指针做形参把调用结果结构体数组数据传递出来,为什么数据总出错?
m3DPoints*points3D是在dll写的函数f1的形参,m3DPoints是在dll里定义的结构体。现在调用该*.dll的主函数中显示*.dll中某个函数f2的...
m3DPoints* points3D是在dll写的函数f1的形参,m3DPoints是在dll里定义的结构体。现在调用该*.dll 的主函数中显示*.dll中某个函数f2的结果其是在该函数里调用上面f1的形参传递出的一个结构体数组,可以进入*.dll的程序,就是通过形参把结果传递出来就乱了,不知道有人知道这是什么原因吗?
晕死还是不行,在控制台程序用形参还是返回值都没问题,但是写成*.dll再在别的程序里调用就不行,每次返回的数组指针都在数组的最后一组数据,而不是数组的第一组数据,所以我才看到其他的都是乱的,这是怎么回事。为什么控制台程序里返回的就是数组第一组数据的指针。 展开
晕死还是不行,在控制台程序用形参还是返回值都没问题,但是写成*.dll再在别的程序里调用就不行,每次返回的数组指针都在数组的最后一组数据,而不是数组的第一组数据,所以我才看到其他的都是乱的,这是怎么回事。为什么控制台程序里返回的就是数组第一组数据的指针。 展开
2个回答
展开全部
可以用返回值传递 来解决。
或是传进去一个结构体的引用。
把需要传出的信息,复制到传入的形参指针所对应的内存中。
或是传进去一个结构体的引用。
把需要传出的信息,复制到传入的形参指针所对应的内存中。
更多追问追答
追问
什么叫结构体的引用?我就是用结构体指针做形参,把需要传出的信息放到,形参指针对应的内存中,但结果内存中全是乱数据。
追答
你看两边结构体的大小是否一样。方便的话,把结构体发上来看看。
结构体中,最好不要用到动态申请的类这样的变量。
如:
struct a{
int x,y;
char s[10]
};
这样子的,应该是没有问题的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询