This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

AGSI DLL can NOT work in V6.21 or higher

I wrote an AGSI DLL, it works well in V6.14, but it can NOT work in V6.21 or higher version. What's wrong?

In AgsiEntry, even I just return 0, it still fails.

extern "C" DWORD AGSIAPI AgsiEntry (DWORD nCode, void *vp)
{
    return 0;  // return fail
}

  • The AGSI interface has been revised and extended between these two versions. However, this should not lead to incompatibilities.

    You return the wrong value in AgsiEntry. 0 (FALSE) means that there is an error and the AGSI DLL should be dropped. You have to return 1 (TRUE) to indicate that your DLL has executed the function successfully.

    Maybe the return value has not been checked in the past but the specification has not changed in this respect.

    If you can't find the problem, please let me know.

  • Hi Hans,

    I think I found the root that cause the crash. When I define an AGSIMENU, the nDlgId item must be unique and must be non-zero. If it is zero, the debugger will crash.

    Regards,
    Archie