Function Exports

The gcc tool chain is stricter than that of WINS/WINSCW when it comes to specifying exported functions. The correct way to export a function from a DLL is as follows:

In the header file:

class CMyClass : public CBase
    {
    IMPORT_C void Function();
    }

and then in the CPP file:

EXPORT_C void CMyClass::Function()
    {
    }

The WINS/WINSCW tool chain does not mind if the EXPORT_C is excluded from the CPP file; it exports the function anyway. However, the gcc tool chain requires the IMPORT_C and EXPORT_C to be perfectly matched. If they are not, the function will not be exported from the DLL, which will eventually lead to errors such as "Cannot Find Function" when attempting to link to this DLL.