vulcan:defines
Differences
This shows you the differences between two versions of the page.
vulcan:defines [2018/05/29 06:25] – created wolfgangriedmann | vulcan:defines [2018/05/29 12:30] (current) – wolfgangriedmann | ||
---|---|---|---|
Line 18: | Line 18: | ||
If you are using the VO compatible class libraries and therefore need the defines from the VO SDK, you should include the library '' | If you are using the VO compatible class libraries and therefore need the defines from the VO SDK, you should include the library '' | ||
+ | |||
+ | In a discussion about this Robert wrote the following: | ||
+ | |||
+ | For me the most important reason to switch back from #define to DEFINE is the way it was implemented and the consequences of this implementation. | ||
+ | In Vulcan the preprocessor (and the X# preprocessor a well) do a " | ||
+ | Consider the following code: | ||
+ | < | ||
+ | Function Delete(nRec as LONG) AS LOGIC</ | ||
+ | If the preprocessor compatibility command line option (/vo8) is switched on, then this will be preprocessor to: | ||
+ | < | ||
+ | |||
+ | Please note how the name of the function was replaced by the value of the define. | ||
+ | This causes many cryptic error messages, making it very difficult for new users to get started. | ||
+ | Without /vo8 this would only happen if the function name was written in ALL CAPITAL letters. | ||
+ | |||
+ | The way VO does it (and the way the DEFINE In X# is implemented) this is not handled by te preprocessor. In a later compiler phase the " | ||
+ | The DEFINE itself is stored as a global const value inside the same class where GLOBALs and FUNCTIONs are stored. | ||
+ | |||
+ | This does not have this side effect. |
vulcan/defines.1527575101.txt.gz · Last modified: 2018/05/29 06:25 by wolfgangriedmann