Re: Dll's Basic Question

  • From: james.homme@xxxxxxxxxxxx
  • To: programmingblind@xxxxxxxxxxxxx
  • Date: Fri, 29 Aug 2008 07:52:22 -0400

Hi Marlon,
I found this function. http://www.php.net/phpinfo/.

Jim

James D Homme, Usability Engineering, Highmark Inc.,
james.homme@xxxxxxxxxxxx, 412-544-1810

"The difference between those who get what they wish for and those who
don't is action. Therefore, every action you take is a complete
success,regardless of the results." -- Jerrold Mundis
Highmark internal only: For usability and accessibility:
http://highwire.highmark.com/sites/iwov/hwt093/


                                                                       
             "Marlon Brandão                                         
             de Sousa"                                                 
             <splyt.lists@gmai                                          To
             l.com>                    programmingblind@xxxxxxxxxxxxx  
             Sent by:                                                   cc
             programmingblind-                                         
             bounce@freelists.                                     Subject
             org                       Re: Dll's Basic Question        
                                                                       
                                                                       
             08/28/2008 02:42                                          
             PM                                                        
                                                                       
                                                                       
             Please respond to                                         
             programmingblind@                                         
               freelists.org                                           
                                                                       
                                                                       




Hello Jim,
I have no idea if this is plain text, if it isn't please tell me and
I'll write again trying to set this thing up and running.
Well, you asked oranges and apples, as ken likes to say. Let's go with
things by parts:

1- A dll is a linked library. it's binary code that runs with your
software, but that is not included right on it. Being a binary file
containing executable stuff, your software can load it when needed and
using several ways.

Generally, a dll file should export some functions that windows uses
to let the programmer define what should happen when a dll is loaded,
when it is unloaded and such. Other than this, functions that a DLL
will export must have a special signature (usually provided by a macro
when the dll is programmed), which will allow the dinamic linker to
find them inside the dll file and link your software to the wanted
function.
Every dll should include a .lib file together with it. This lib file
isn't a normal .lib file (which is a block of binary code that links
right in your executable file). It is, instead, a guide to instruct
your binary to ask the dinamic linker to load a given function of the
dll dinamically when your code needs it.
Microsoft have created a standard called COM, which latter on became
the com+. A com+ is a standard dll, but it must export some functions
that the transaction server uses to load these objects in a way that
allows for a distributed execution environment.
In a standard dll (not com+), you have no way of knowing what
functions are exported, unless you either have the .h and .lib files
that all dll should export or you like and know how  to open binaries
in a hexadecimal editor and try to discover what's going on. Another
option is to ask visual c++ to generate a .def file from the dll, and
try to understand what functions and parameters and return codes the
dll exports.
If the dll is a com+, you can use several utilities included in visual
studio to track what objects are exported. You can aquire pretty much
information about methods, parameters, return types and properties of
the objects.
In the php case, these dlls (the extensions) are standard dlls (not
com). They're coded following the PHP extensions API (in C) and are
compiled as dlls. The interpreter takes care of loading them and
linking your script to the wanted extension, so that php can use the
functions or classes inside it.
A good way of knowing what extensions are loaded in php is to execut
php -m and see the output. But, the point here is: if you figure out a
way of seeing what functions the dll exports, you will see the binary
functions used by the interpreter to make the php functions available,
bnot the php functions. Perhaps the php itself has a function to list
functions in an extension. I don't remember now, but I can research if
you need.
Thanks,
Marlon

2008/8/27, james.homme@xxxxxxxxxxxx <james.homme@xxxxxxxxxxxx>:
>
> Hi,
> If you see a dll on your system, how do you discover what it is capable
of
> doing? Here's a related question. If you are using VisualBasic or some
> environment and you tell the environment to include a library, are you
> connecting your project to a dll? Related to that, if you are using PHP,
> and you uncomment one of the extension lines in php.ini, assuming that
> doing that makes it connect to a dll, what actually is happening behind
the
> scenes? If you answer, can you please phrase the answer in plain
language?
>
> Thanks.
>
> Jim
>
> James D Homme, Usability Engineering, Highmark Inc.,
> james.homme@xxxxxxxxxxxx, 412-544-1810
>
> "The difference between those who get what they wish for and those who
> don't is action. Therefore, every action you take is a complete
> success,regardless of the results." -- Jerrold Mundis
> Highmark internal only: For usability and accessibility:
> http://highwire.highmark.com/sites/iwov/hwt093/
>
> __________
> View the list's information and change your settings at
> //www.freelists.org/list/programmingblind
>
>


--
When you say "I wrote a program that crashed Windows," people just
stare at you blankly and say "Hey, I got those with the system, for
free."
Linus Torvalds
__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind



__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind

Other related posts: