"Troels Thomsen" <asdf@asdf.dk> wrote in message 
news:42baafbb$0$267$edfadb0f@dread11.news.tele.dk...
> Jeg har et program hvor jeg er nødt til at lave noget dummy kode, ellers 
> går programmet ned med "Access Violation at 0xFFFFFFFFF".
>
> void __fastcall TForm1::init_callbackClick(TObject *Sender)
> {
>    void* pR = myReceiveFunc;           // ?????
>    void* pT = myTransmitFunc;          // ?????
>    void* pM = myMajorErrorFunc;        // ?????
Det allokerer formodentlig noget plads på stakken.
>    if (pR || pT || pM) pR = 0 ;        // ?????
>
>    g_Event_Receive(myReceiveFunc);
>    g_Event_Transmit(myTransmitFunc);
>    g_Event_MajorError(myMajorErrorFunc);
>
> }
>
> De nederst tre kald er funktionspointere der er loaded med adressen på den 
> pågældende funtion i en dll. De er ikke null.
>
> myReceiveFunc etc er funktioner jeg har skrevet, de er heller ikke null 
> 
>
> Et par definitioner:
> typedef void  (__stdcall *PEvent_Receive)(void (ReceiveFunc)(ESACAN_MSG 
> *msg, int reply));
> PEvent_Receive              g_Event_Receive;
>
> Det skal siges at programmet går ned før dll'en får lyst til at kalde 
> disse funktioner, så det er ikke selve callbackfunktionerne der er fejl i.
>
> Ellers virker programmet fint...
Mon dog ?
Selvom du laver nogle dummy variable, er der nok en fejl i programmet som 
ligger og lurer.
>
> Det er jo super giftigt hvis jeg ikke har de rigtige antal parametre og 
> returværdier til sådan nogle funktionspointere.
Det burde compilerens typesystem gerne fange - så det er ikke det mest 
oplagte problem.
> Kan det være derfor at det er en fordel at der lige ligger nogle 
> autoparametre på stacken ??
>
> Hvad kan jeg gøre for at indkredse problemet ?
Det ligner noget C++Builder kode.
Hvis det er C++Builder V6 Professional, så slår du CodeGuard til (Project | 
Options | CodeGuard) og så vil du sikkert få noget mere at vide om hvad der 
er galt.
Venlig hilsen
Mogens Hansen