Export Bridge Assistant Shows No Resolve
QUESTION: I've written a very simple IDL object that I wish to call from a JAVA program. When I try to create a wrapper for the object with the IDL Export Bridge Assistant, IDLExBr_Assistant, I constantly get the error message that my "object cannot be resolved" when I try to open the file. What does this mean and what can I do about it?
![]()
ANSWER: Even though the IDL Export Bridge Assistant is called from within your IDL process, it apparently runs in a separate process unrelated to the current IDL process. As far as I can tell, it has to find and resolve all of the IDL programs related to the object it is attempting to write a wrapper for. It uses, I believe, the standard IDL path to find and resolve these files. This is similar to starting a new IDL session, compiling your object, and then typing RESOLVE_ALL to resolve any called IDL program reference by your object and the IDL program's used in the object.
The odd thing about this though, is that the Export Bridge Assistant apparently uses a different compile order than the normal IDL session. Because of this difference, you can occasionally find an IDL object program that can be compiled, resolved, and run properly in the IDL environment, but it will still fail to be resolved in the Export Bridge Assistant.
This can, potentially, be a hard problem to solve. Especially so because the error messages coming from the Export Bridge Assistant are decidedly unhelpful. (Well, there are none.) For the most part you are on your own and re-arranging paths, moving IDL functions forward on the path directories, swearing, and prayer have all been recommended as strategies. Some work better than others.
I spent a half day, once, carefully commenting out portions of my code until I finally found the part causing the problem. Then I spent the next half day uncommenting lines until I narrowed the problem to a single line. In my case, I had to move an IDL procedure out of its position in the file as a utility routine and put it in a file of its own that could be "discovered" by the Export Bridge Assistant more readily. I'm not sure there is a single, clear-cut answer. But the usual compile order culprits are the ones you should be looking for.
Interestingly, my problem file was resolved in a pre-release beta version of IDL, so it is possible this problem might be fixed in IDL 7.1, or that the Export Assistant might at least use the same configurable compile order the IDL Workbench uses. And I hear rumors that error handling has been improved to offer more clues as to what possibly might be wrong, too. All of that sounds like good news to me. In the meantime, good ol' trial and error might still be your best bet.
![]()
Version of IDL used to prepare this article: IDL 7.0.3.
![]()
Copyright © 2009 David W. Fanning
Written 7 April 2009