comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: Call_External error in Virtual Machine
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Re: Call_External error in Virtual Machine [message #55140] Mon, 06 August 2007 05:03
Haje Korth is currently offline  Haje Korth
Messages: 651
Registered: May 1997
Senior Member
The renaming to idl.dll occurred from v6.2 to v6.3 and is a well known
issue. While the necessity of this cosmetic change is arguable, your
problems can occur with any other third party library as well. Just write
your own function. Haje


"bsoher" <brian.soher@duke.edu> wrote in message
news:1186359464.644776.127180@k79g2000hse.googlegroups.com.. .
> Found my problem with some help from others ... so I'm replying to my
> own email.
>
> Turns out my problem is due to a difference between IDL 6.1 and 6.3.
> I call C++ code using CALL_EXTERNAL, and I use the idl32.dll call,
> IDL_StrStore(), to write error messages back to my IDL routine. In
> IDL 6.3 (or maybe 6.2) they renamed this DLL to idl.dll which sort of
> leaves me hanging out in the wind a bit.
>
> RSI/ITT's (polite but not completely helpful) response to all this was
> that CALL_EXTERNAL was meant to link in standalone C/C++ routines that
> did not make use of IDL functionality. So, I can either create IDL
> version specific releases for my program OR find a way to ditch
> IDL_StrString(), which is the only function I call out of idl32.dll.
>
> I figure that I'll set up my strings in the C++ call as fixed length
> byte arrays and then use strncpy() to copy in any error messages. I
> can then use the STRING() function in IDL to recreate these messages
> for display.
>
> Brian.
>
>
> On Aug 2, 3:04 pm, bsoher <brian.so...@duke.edu> wrote:
>> Hi,
>>
>> I have a windows DLL that I call from an IDL gui using the
>> CALL_EXTERNAL mechanism that works just fine when I compile the
>> application in IDL 6.1 and run it from the IDL command line. When I
>> save the app (SAVE, /ROUTINES, /XDR, FILENAME=fname) and drop the
>> fname.sav file onto the IDL 6.3 Virtual Machine shortcut, the
>> application's gui pops up OK, but I get an error message from
>> Call_External the first time it tries to access the DLL.
>>
>> The error index = -378
>> The error msg = CALL_EXTERNAL: Error loading sharable executable.
>> Symbol: gava_mysql_do_query, File=C:\WINDOWS
>> \system32\libgava_main.dll
>> The specified module could not be found.
>>
>> Again, this CALL_EXTERNAL call works just fine outside the VM. I've
>> tried hardcoding the directory where the DLL is located (usually I
>> just list the DLL name because system32 is in the search path) but
>> this did not help.
>>
>> Any thoughts would be appreciated.
>>
>> Thanks,
>>
>> Brian.
>
>
Re: Call_External error in Virtual Machine [message #55143 is a reply to message #55140] Sun, 05 August 2007 17:17 Go to previous message
bsoher is currently offline  bsoher
Messages: 5
Registered: May 2006
Junior Member
Found my problem with some help from others ... so I'm replying to my
own email.

Turns out my problem is due to a difference between IDL 6.1 and 6.3.
I call C++ code using CALL_EXTERNAL, and I use the idl32.dll call,
IDL_StrStore(), to write error messages back to my IDL routine. In
IDL 6.3 (or maybe 6.2) they renamed this DLL to idl.dll which sort of
leaves me hanging out in the wind a bit.

RSI/ITT's (polite but not completely helpful) response to all this was
that CALL_EXTERNAL was meant to link in standalone C/C++ routines that
did not make use of IDL functionality. So, I can either create IDL
version specific releases for my program OR find a way to ditch
IDL_StrString(), which is the only function I call out of idl32.dll.

I figure that I'll set up my strings in the C++ call as fixed length
byte arrays and then use strncpy() to copy in any error messages. I
can then use the STRING() function in IDL to recreate these messages
for display.

Brian.


On Aug 2, 3:04 pm, bsoher <brian.so...@duke.edu> wrote:
> Hi,
>
> I have a windows DLL that I call from an IDL gui using the
> CALL_EXTERNAL mechanism that works just fine when I compile the
> application in IDL 6.1 and run it from the IDL command line. When I
> save the app (SAVE, /ROUTINES, /XDR, FILENAME=fname) and drop the
> fname.sav file onto the IDL 6.3 Virtual Machine shortcut, the
> application's gui pops up OK, but I get an error message from
> Call_External the first time it tries to access the DLL.
>
> The error index = -378
> The error msg = CALL_EXTERNAL: Error loading sharable executable.
> Symbol: gava_mysql_do_query, File=C:\WINDOWS
> \system32\libgava_main.dll
> The specified module could not be found.
>
> Again, this CALL_EXTERNAL call works just fine outside the VM. I've
> tried hardcoding the directory where the DLL is located (usually I
> just list the DLL name because system32 is in the search path) but
> this did not help.
>
> Any thoughts would be appreciated.
>
> Thanks,
>
> Brian.
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Re: how to confirm whether the webpage is accessible?
Next Topic: Re: Predicting string lengths in widgets

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Oct 08 16:01:18 PDT 2025

Total time taken to generate the page: 0.00530 seconds