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 に答える