Re: Using C libraries and PHP - calling functions in external libraries



icu5545 wrote:
On Feb 23, 5:29 pm, Otis <otie_nos...@xxxxxxx> wrote:
>> You might try a host that allows dynamic loading of your dll via the
dl() function.

Unfortunately, my .dll is a Windows .dll (I think it is compiled with C),
not a PHP extension - and it needs to run on my hosted UNIX server, so I
don't think you can just put a Windows .dll on a UNIX server and expect a
PHP call to it to respond properly.

Can you???

Otis

Norman Peelman wrote:
Otis wrote:
Currently I am running a compiled C program (called swetest) on Linux
from PHP using the exec() command. This allows me to get the
calculations I need. But some web hosts out there disable the exec()
command and I am stuck. What are the ways in which I might be able to
call the functions in swetest directly from PHP without having to rely
on the PHP exec() command and its buddies like system, shell_exec(),
etc., which are also disabled.
I have the following C files available:
swetest.c
libswe.a (which I guess is the created library)
On a Windows system, I can make a .dll (astro_php.dll), then call it
from PHP thusly:
$obj = new COM("astro_php.astro_php_cls");
$output=$obj->Get_geo_planet("2454507.5", "2");
echo $output;
How does one do something similar on Linux instead of Windows?
Thank you.
Otis
You might try a host that allows dynamic loading of your dll via the
dl() function.

Nope, unless the server is actually running in a virtual environment
utilizing Windows as its OS. (A very long shot.) Anywho, you need a
file with the extension ".so" to run on a Linux variant. If you had
the source, you could port it to Linux using a Live CD (or plain old
install) to compile it.

Another thing that I am completely unsure about is utilizing Wine
(Windows file emulator).

NOTE: the Wine thing is a bit of a stretch in itself. I'm not actually
sure it's possible. And it certainly would / should not be possible on
shared hosting.


Correct. A Windows DLL will not run on a Unix/Linux server. It will only run under Windows - either standalone or on a virtual machine, but it must be Windows. Not even Wine will allow the DLL to run.

It would be theoretically possible to make a Windows DLL run under Linux - but it would basically require creating a Windows emulator under Linux. It's easier to just use a virtual machine.

If this MUST run under Linux/Unix, it must be recompiled. Whether it works or not will depend on how many OS-specific functions it uses.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@xxxxxxxxxxxxx
==================

.



Relevant Pages

  • Re: Converting Windows driver (DLL) to Linux driver
    ... > How can I convert a Windows DLL to a Linux driver. ... > in Windows assembly and it is PE Explorer generated. ...
    (comp.os.linux.development.apps)
  • Re: [PHP] Missing DLLs
    ... Is that something in PHP source that could be fixed to specify WHICH dll is really missing? ... I'm happy to put it in bugs.php.net as a feature request, if it's actually IN php, but don't want to waste the resources to mark it as junk if there's no way PHP could do that. ... It's been a while since I've done Windows development, but IIRC PHP will only be able to tell that the DLL could not be loaded, I don't believe Windows exposes exactly what the problem was. ... Because I can recall other times that you got the urge to hit your head on the keyboard multiple times in order to get over the fact that the problem that caused the error was so ...king obvious. ...
    (php.general)
  • Re: .Net packaging/wrapper application?
    ... it just didn't work well in reality due to DLL ... Windows works is to look in the executable's directory for a needed DLL ... the way apps used to work when they developed Windows. ... Looks to me like Jim is looking for the .NET equivalent of compiling ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: Linux, X, ld, gcc, linking, shared libraries and stuff
    ... >> I found something called CGwin or something, it emulates some linux on ... >> the windows plattform, but it is only reliable for source builds runs, ... This then allows you to compile Linux source code against the DLL and the ...
    (alt.lang.asm)
  • Re: [PHP] Missing DLLs
    ... Is that something in PHP source that could be fixed to specify WHICH dll is really missing? ... I'm happy to put it in bugs.php.net as a feature request, if it's actually IN php, but don't want to waste the resources to mark it as junk if there's no way PHP could do that. ... It's been a while since I've done Windows development, but IIRC PHP will only be able to tell that the DLL could not be loaded, I don't believe Windows exposes exactly what the problem was. ... Because I can recall other times that you got the urge to hit your head on the keyboard multiple times in order to get over the fact that the problem that caused the error was so ...king obvious. ...
    (php.general)