我尝试使用外部库。当我从这个库中调用函数时,它的工作是正确的。但是后来我尝试在循环中调用此函数,我有分段错误。代码例如:
char *snam = (char*) new char;
QLibrary swedll("swedll32.dll");
typedef char * (*Fct)(int, char *);
Fct fct=(Fct)(swedll.resolve("_swe_get_planet_name@8"));
for(int i=0;i<100;++i)
{
if (fct) fct(0,snam);
}
我做错了什么?
typedef char * (*Fct)(int, char *); Fct fct=(Fct)(swedll.resolve("_swe_get_planet_name@8"));
必须更改为
typedef __stdcall char * (*Fct)(int, char *); Fct fct=(Fct)(swedll.resolve("_swe_get_planet_name@8"));