Re: importing .dll files [message #68344] |
Tue, 20 October 2009 05:27  |
Haje Korth
Messages: 651 Registered: May 1997
|
Senior Member |
|
|
My guess too is that you forgot to export the function in the dll.
That is the main difference to sharable object (so) libraries in
linux, where you do not need this step.
On Oct 20, 3:45 am, Wox <s...@nomail.com> wrote:
> On Mon, 19 Oct 2009 16:06:00 -0700 (PDT), Cindy
>
>
>
> <cgoet...@igpp.ucla.edu> wrote:
>> Hello,
>
>> I have a dynamic linked library (created in Visual Fortran) and I am
>> trying to use the call_external procedure to use one of the
>> subroutines, however, I am unclear on the error messages I am getting.
>
>> IDL>dll_file_name=' C:\Program Files\Microsoft Visual Studio
>> \MyProjects\test\Debug\test.dll'
>> IDL> result=call_external(dll_file_name, 'aoc', r)
>> CALL_EXTERNAL: Error loading sharable executable.
>> Symbol: aoc, File = C:\Program Files\Microsoft Visual Studio\MyProjects
>> \test\Debug\test.dll
>> The specified procedure could not be found.
>
>> Does the above mean
>> 1. it can't access/open/interpret the .dll file and hence can't find
>> the procedure
>> or
>> 2. just can't find the procedure in the library
>
> When it doesn't find the library, it gives this message:
> % CALL_EXTERNAL: Error loading sharable executable.
> Symbol: aoc, File = test.dll
> The specified module could not be found.
>
> In your case, it finds the dll, but doesn't find the aoc procedure.
>
> One of the problems I can think of is "name decoration". Use the
> Dependency Walker (google it and download) to check whether the export
> function aoc has some strange characters appended to it.
|
|
|