PlanetSquires Forums

Support Forums => Other Software and Code => Topic started by: Norman Blowers on June 18, 2012, 12:41:30 AM

Title: Code placement in _DECLARES
Post by: Norman Blowers on June 18, 2012, 12:41:30 AM
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

Title: Re: Code placement in _DECLARES
Post by: Norman Blowers on June 18, 2012, 02:14:35 AM
I forgot to mention, I'm using version 3.61.
Title: Re: Code placement in _DECLARES
Post by: Paul Squires on June 18, 2012, 09:16:30 AM
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.
Title: Re: Code placement in _DECLARES
Post by: Norman Blowers on June 18, 2012, 12:42:52 PM
Thanks for the fast response.  No problem with editing, just wondered about it.