XOPs are platform specific. However, almost all of the XOPs that ship with Igor are supported on both the Macintosh and Windows platforms, however you have to use the correct XOP file on the correct platform. For XOPs produced by other companies or by other people, you'd need to check with them to see if they support both platforms or not.
I'm currently coding a windows only XOP (due to some proprietary DLL I have to use). Must/Can I set in the XOP a property like "win32 only"?
Or does the user get a reasonable error message when he tries to use a XOP which was compiled on the other platform?
I'm currently coding a windows only XOP (due to some proprietary DLL I have to use). Must/Can I set in the XOP a property like "win32 only"?
Or does the user get a reasonable error message when he tries to use a XOP which was compiled on the other platform?
Igor won't attempt to load a .XOP file that was compiled for a different operating system, so there is no need for a "win32 only" type property. If the user tries to call a function or operation that Igor doesn't know about (such as one that would be provided by an XOP on another platform), Igor just gives a generic error message of "expected wave name, variable name, or operation".
If you call external functions or operations from Igor functions, and if you are using Igor 6 or later, you can use conditional compilation to prevent compile errors if a function that uses the XOP is compiled. But in some cases doing so might be confusing, and in fact you'd want the compile errors.
June 24, 2010 at 03:03 pm - Permalink
I'm currently coding a windows only XOP (due to some proprietary DLL I have to use). Must/Can I set in the XOP a property like "win32 only"?
Or does the user get a reasonable error message when he tries to use a XOP which was compiled on the other platform?
Thanks,
Thomas
June 28, 2010 at 06:24 am - Permalink
Igor won't attempt to load a .XOP file that was compiled for a different operating system, so there is no need for a "win32 only" type property. If the user tries to call a function or operation that Igor doesn't know about (such as one that would be provided by an XOP on another platform), Igor just gives a generic error message of "expected wave name, variable name, or operation".
If you call external functions or operations from Igor functions, and if you are using Igor 6 or later, you can use conditional compilation to prevent compile errors if a function that uses the XOP is compiled. But in some cases doing so might be confusing, and in fact you'd want the compile errors.
June 28, 2010 at 08:55 am - Permalink
That sounds clever. Thanks for the explanation.
June 30, 2010 at 08:26 am - Permalink