Code placement in _DECLARES

Started by Norman Blowers, June 18, 2012, 12:41:30 AM

Previous topic - Next topic

Norman Blowers

In my code I have the following in a separate module.  After attempting to compile, the UNION ends up above the TYPE definition in the _DECLARES.INC file so errors with a 524 error.  Any ideas?

TYPE XFER_TYPE
    hDlg            AS  LONG                ' 0~3
    CmdSocket       AS  LONG                ' 4~7
    DataSocket      AS  LONG                ' 8~11
    ListenSocket    AS  LONG                ' 12~15
    CmdPort         AS  DWORD               ' 16~19
    DataPort        AS  DWORD               ' 20~23
    BytesProcessed  AS  DWORD               ' 24~27
    CmdBlockSize    AS  DWORD               ' 28~31
    DataBlockSize   AS  DWORD               ' 32~35
    StartTime       AS  DWORD               ' 36~39
    EndTime         AS  DWORD               ' 40~43
    CmdConnected    AS  BYTE                ' 44
    DataConnected   AS  BYTE                ' 45
    FTPFlag         AS  BYTE                ' 46
    FileLength      AS  QUAD                ' 47~54
    FileHandle      AS  LONG                ' 55~58
    SystemError     AS  DWORD               ' 59~62
    FileError       AS  DWORD               ' 63~66
    InetError       AS  DWORD               ' 67~70
    WinsockError    AS  DWORD               ' 71~74
    AppError        AS  DWORD               ' 75~78
    RemoteError     AS  DWORD               ' 79~82
    Aborted         AS  BYTE                ' 83
    FileNam         AS  STRING * %MAX_PATH  ' 84
    FileNum         AS  INTEGER
    FileThread      AS  DWORD
    OrigFileNam     AS  STRING * %MAX_PATH
END TYPE

TYPE CONFIG_TYPE
    LastUsedIP          AS STRING * 15
    Ip1                 AS STRING * 15
    Ip2                 AS STRING * 15
    Ip3                 AS STRING * 15
    Ip4                 AS STRING * 15
    Ip5                 AS STRING * 15
    IPP1                AS STRING * 15
    IPP2                AS STRING * 15
    RecDir              AS STRING * %MAX_PATH
    SendDir             AS STRING * %MAX_PATH
    RetryFiles          AS LONG
    FilesOption         AS LONG
    OWTransferLog       AS LONG
    OWSystemLog         AS LONG
    AllFiles            AS LONG
    Retries     AS INTEGER
END TYPE

UNION XFER_CONFIG_TYPE
    x AS XFER_TYPE PTR
    c AS CONFIG_TYPE PTR
END UNION

Here is the extract from the _DECLARES.INC file..
UNION XFER_CONFIG_TYPE
    x AS XFER_TYPE PTR
    c AS CONFIG_TYPE PTR
END UNION
         %MSG_ARRAY_SIZE     = 10


TYPE XFER_TYPE   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|156|0
    hDlg            AS  LONG                ' 0~3   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|157|0
    CmdSocket       AS  LONG                ' 4~7   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|158|0
    DataSocket      AS  LONG                ' 8~11   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|159|0
    ListenSocket    AS  LONG                ' 12~15   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|160|0
    CmdPort         AS  DWORD               ' 16~19   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|161|0
    DataPort        AS  DWORD               ' 20~23   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|162|0
    BytesProcessed  AS  DWORD               ' 24~27   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|163|0
    CmdBlockSize    AS  DWORD               ' 28~31   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|164|0
    DataBlockSize   AS  DWORD               ' 32~35   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|165|0
    StartTime       AS  DWORD               ' 36~39   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|166|0
    EndTime         AS  DWORD               ' 40~43   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|167|0
    CmdConnected    AS  BYTE                ' 44   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|168|0
    DataConnected   AS  BYTE                ' 45   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|169|0
    FTPFlag         AS  BYTE                ' 46   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|170|0
    FileLength      AS  QUAD                ' 47~54   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|171|0
    FileHandle      AS  LONG                ' 55~58   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|172|0
    SystemError     AS  DWORD               ' 59~62   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|173|0
    FileError       AS  DWORD               ' 63~66   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|174|0
    InetError       AS  DWORD               ' 67~70   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|175|0
    WinsockError    AS  DWORD               ' 71~74   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|176|0
    AppError        AS  DWORD               ' 75~78   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|177|0
    RemoteError     AS  DWORD               ' 79~82   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|178|0
    Aborted         AS  BYTE                ' 83   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|179|0
    FileNam         AS  STRING * %MAX_PATH  ' 84   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|180|0
    FileNum         AS  INTEGER   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|181|0
    FileThread      AS  DWORD   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|182|0
    OrigFileNam     AS  STRING * %MAX_PATH   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|183|0
END TYPE   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|184|0
TYPE CONFIG_TYPE   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|186|0
    LastUsedIP          AS STRING * 15   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|187|0
    Ip1                 AS STRING * 15   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|188|0
    Ip2                 AS STRING * 15   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|189|0
    Ip3                 AS STRING * 15   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|190|0
    Ip4                 AS STRING * 15   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|191|0
    Ip5                 AS STRING * 15   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|192|0
    IPP1                AS STRING * 15   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|193|0
    IPP2                AS STRING * 15   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|194|0
    RecDir              AS STRING * %MAX_PATH   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|195|0
    SendDir             AS STRING * %MAX_PATH   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|196|0
    RetryFiles          AS LONG   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|197|0
    FilesOption         AS LONG   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|198|0
    OWTransferLog       AS LONG   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|199|0
    OWSystemLog         AS LONG   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|200|0
    AllFiles            AS LONG   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|201|0
    Retries     AS INTEGER   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|202|0
END TYPE   ':FILE:CODEGEN_NFFT_NFFTCONSTINC_MODULE.inc|203|0


Norman Blowers

I forgot to mention, I'm using version 3.61.

Paul Squires

Hi Norman,

Right you are, and this is one area of the automated code generation process that will affect people either way I do it. Some need the UNIONS before the TYPE's and others need the UNIONS after the TYPE's. In your case, I suggest putting your UNIONS and TYPE's in a separate include file and #INCLUDE it into your program in the FF_APPSTART handler. It will be a bummer in that you will have to edit this file from outside of FireFly but if your code doesn't change often then it shouldn't be too much of a problem. An extra bonus would be that your code generation should be a little bit faster as well.
Paul Squires
PlanetSquires Software

Norman Blowers

Thanks for the fast response.  No problem with editing, just wondered about it.