Safely handling Igor32bit extension and procedure with Igor64bit

Hello all,
Using IgorPro8.

I have an extension  `analyzer` in a directory placed under Igor Extensions.

I have two independent ipf files (GUI_1.ipf and GUI_2.ipf) which make a panel, and they call the function in the Extension.

For user, I would like to place them in a safe and simple manner to one of the procedure folders, so that these panels can be used.
All is fine with 32bit IgorPro, but things break with 64bit.

With 64bit, i see `Function Compilation Error` since at initial compile Igor64 sees the function defined in the extension (which is 32bit).

How to place these procedure files safely.


1.) I tried with a `caller.ipf` file  seeking to try selective include :

---custom_ipfs/
       | - GUI_2.ipf 
       | - GUI_1.ipf

---IgorProcedures
   | - caller.ipf


In this case, the functions in the `GUI_1.ipf` and `GUI_2.ipf` are not loaded.

Content of `caller.ipf`is shown below :

#if !defined(IGOR64BIT)
 
    #include "./../custom_ipfs/GUI_2"
 
    #include "./../custom_ipfs/GUI_1"
 
#endif

2.) and also with another case with custom_ipf folder inside IgorProcedures

 

 

---IgorProcedures
   | - caller.ipf
   | - custom_ipfs/
           | - GUI_2.ipf
           | - GUI_1.ipf

 

Content of `caller.ipf`is shown below :

#if !defined(IGOR64BIT)
 
    #include "custom_ipfs/GUI_2"
 
    #include "custom_ipfs/GUI_1"
 
#endif

In this case, the functions in the `GUI_1.ipf` and `GUI_2.ipf` are loaded correctly only for 32bit !

Of course, if I place `GUI_1.ipf` and `GUI_2.ipf` in the `Igor Procedures folder`, all is ok with Igor32bit, but Igor64 bit breaks.

Any suggestions.
 

"IGOR64BIT" is not a symbol that Igor will ever pre-define. Perhaps you meant to use "IGOR64"? For information on those, you can execute this command on Igor's command line:

DisplayHelpTopic "Predefined Global Symbols"

However,  you might consider the approach used in the first example of:

DisplayHelpTopic "Conditional Compilation"

That way, if you were to port your XOP to 64-bit, you don't need to change your Igor code at all--it will just start working once the 64-bit XOP exists.

You might know this already, but Igor Pro 10 and later are 64-bit only applications, so if you ever want to use that version you'll need to port your XOP to 64-bit, if that's possible.

Hello,
Thank you for the heads up.

Conditional compilation is what I was looking for and using the name of the routine with exist() worked well.