0

我尝试使用外部库。当我从这个库调用函数时,它工作正常。但是后来我尝试在循环中调用这个函数我有分段错误。代码例如:

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);
} 

我做错了什么?

4

1 回答 1

0
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"));
于 2012-09-24T07:15:12.850 回答