[Openmcl-devel] relaunching CCL IDE on Windows problems

Gary Byers gb at clozure.com
Fri Nov 18 16:54:14 PST 2011


Please read the message I sent the other day.
When you get to the point that discusses how Windows names functions that
accept or return different kinds of strings, please read it carefully.

On Fri, 18 Nov 2011, Michael Minerva wrote:

> Matthew,
> Your initial advice worked wonderfully and I was able to get a list of
> currently active process IDS, thanks again!
> 
> I now need a function that takes a pid and returns the name of the main
> executable module of this process. ?It seems I need to make a call
> to?GetModuleBaseName or seemingly even better
> GetProcessImageFileName?or?QueryFullProcessImageName. ?Sadly it seems that
> even external-call does not find these functions and returns an error like
> this:
> 
> Error: Can't resolve foreign symbol "GetModuleBaseName"
> 
> Or if we call #_GetModuleBaseName I get an error like:
> 
> Error: Foreign function not found: WIN32::|GetModuleFileNameEx|
> 
> If external-call does not find it does this mean: A) the function really
> does not exist B) I had some kind of problem with the parameters I passed C)
> Something else? ? I tried playing with the parameters for quite some time so
> I am guessing it is not B. ?
> 
> Thanks again for all your help!
> 
> --Mike
> 
> On Nov 18, 2011, at 2:19 PM, R. Matthew Emerson wrote:
> 
>
>       On Nov 18, 2011, at 2:58 PM, Michael Minerva wrote:
>
>             I wanted to try out some of the function Gary
>             suggested but it seems the library EnumProcesses is
>             in may not be used by CCL. ?When I call
>             #_EnumProcesses I get the following error in CCL:
> 
>
>             Error: Foreign function not found:
>             WIN32::|EnumProcesses|
> 
>
>             Does this imply that EnumProcesses is in a library
>             not currently used by CCL?
> 
>
>       That means that EnumProcesses isn't in the interface database.
>       ?I see
>       from looking at win32-headers/libc/C/populate.sh that we don't
>       process
>       psapi.h.
>
>       You can use external-call instead. ?Something like (untested)
>
>       (external-call "EnumProcesses" :address pProcessIds :int cb
>       :address pBytesReturned :<BOOL>)
> 
> 
> 
> 
>



More information about the Openmcl-devel mailing list