Como posso chamar uma DLL pelo PHP ?
Como chamar uma DLL usando PHP no Windows 2000? Tenho um exemplo dessa chamada em ASP, preciso fazer a mesma coisa.
segue comando ASP para chamada da DLL
Set objcDefault = Server.CreateObject("Sck_ProdespV.entrada")
sMainFrame = objcDefault.INIT(param 1,param 2,param 3)
Grato,
José Henrique
segue comando ASP para chamada da DLL
Set objcDefault = Server.CreateObject("Sck_ProdespV.entrada")
sMainFrame = objcDefault.INIT(param 1,param 2,param 3)
Grato,
José Henrique
comentários (0)
suspender
Lista de Respostas:
18/04/2002 3:30am
(~23 anos atrás)
(~23 anos atrás)
ASSUMINDO QUE ESSA DLL SUA SEJA UM MODULO DO PHP
18/04/2002 3:30am
(~23 anos atrás)
(~23 anos atrás)
ASSUMINDO QUE ESSA DLL SUA SEJA UM MODULO DO PHP
18/04/2002 3:30am
(~23 anos atrás)
(~23 anos atrás)
ASSUMINDO QUE ESSA DLL SUA SEJA UM MODULO DO PHP
18/04/2002 3:30am
(~23 anos atrás)
(~23 anos atrás)
ASSUMINDO QUE ESSA DLL SUA SEJA UM MODULO DO PHP VC PODERIA USAR
A FUNCAO DL
A FUNCAO DL
18/04/2002 6:36am
(~23 anos atrás)
(~23 anos atrás)
Tentei fazer isso mas não consegui, alguém pode me explicar como fazer, ou até mesmo me passar um exemplo?
Grato,
José Henrique
Grato,
José Henrique
18/04/2002 12:33pm
(~23 anos atrás)
(~23 anos atrás)
No manual, mas especificamente na parte das contribuições pode ser encontrado uma resposta para sua pergunta:
http://www.php.net/manual/en/function.dl.php
[]'s
Felipe Lopes
http://www.php.net/manual/en/function.dl.php
[]'s
Felipe Lopes
18/04/2002 6:00pm
(~23 anos atrás)
(~23 anos atrás)
Bem galera o negócio é o seguinte:
O ASP consegue executar DLLs que estão registradas no seu sistema via comando REGSVR32 ou estar rodando sob o MTS (Microsoft Transaction Server), porém, os testes que fiz com o PHP mostraram que ele consegue apenas executar DLLs que estejam no MTS. Se o seu sistema for W2000, beleza, pois voce não irá precisar efetuar mudanças na sua DLL, basta voce colocá-la rodando no Component Services (Esse é o nome do MTS no W2000), que esta dentro do Administrative Tools, caso o seu sistema seja NT ou outro, então voce terá um trabalho para converter essa DLL para que ela rode no MTS.
Caso voce consiga colocá-la então utilize o seguinte comando PHP:
<?php
//Para instanciar a classe
$objCOM = new COM("Project.Class") or die("Sem chance...");
//Para acessar um método da classe
echo $objCOM->NomeDoMetodo();
//Para liberar o objeto
$objCOM->Release();
$objCOM = null;
?>
O ASP consegue executar DLLs que estão registradas no seu sistema via comando REGSVR32 ou estar rodando sob o MTS (Microsoft Transaction Server), porém, os testes que fiz com o PHP mostraram que ele consegue apenas executar DLLs que estejam no MTS. Se o seu sistema for W2000, beleza, pois voce não irá precisar efetuar mudanças na sua DLL, basta voce colocá-la rodando no Component Services (Esse é o nome do MTS no W2000), que esta dentro do Administrative Tools, caso o seu sistema seja NT ou outro, então voce terá um trabalho para converter essa DLL para que ela rode no MTS.
Caso voce consiga colocá-la então utilize o seguinte comando PHP:
<?php
//Para instanciar a classe
$objCOM = new COM("Project.Class") or die("Sem chance...");
//Para acessar um método da classe
echo $objCOM->NomeDoMetodo();
//Para liberar o objeto
$objCOM->Release();
$objCOM = null;
?>
19/04/2002 2:13pm
(~23 anos atrás)
(~23 anos atrás)
Eu esqueci de uma coisa, essas instruções valem apenas se a DLL for ACTIVEX, como o exemplo foi uma instância criada pelo asp utilizando o camando Createobject, eu deduzi que a DLL em questão seja ACTIVEX.
24/04/2002 6:47am
(~22 anos atrás)
(~22 anos atrás)
Pessoal, consegui fazer funcionar. Usei o exemplo que o "All" passou. Não estava funcionando, pois faltava registrar a DLL no windows. Estou usando o 2000 e neste caso para registrar a dll usei o comando regsvr32 nome_da_dll.dll. Obrigado a todos especialmente a Alberto Viero. Abraço José Henrique.
11/08/2003 7:21am
(~21 anos atrás)
(~21 anos atrás)
olá amigos.
nao consegui fazer a dll ser acessada pelo php. esta tudo certomas deve estar algo de errado.
deve ser uma besteirinha pois tudo que foi afirmado nesse assunto eu executei sem problema.
se alguem poder me ajudar serei muito grato !
[]s
Cristiano Santos
nao consegui fazer a dll ser acessada pelo php. esta tudo certomas deve estar algo de errado.
deve ser uma besteirinha pois tudo que foi afirmado nesse assunto eu executei sem problema.
se alguem poder me ajudar serei muito grato !
[]s
Cristiano Santos
08/06/2004 9:43pm
(~20 anos atrás)
(~20 anos atrás)
Se ela estiver configurada como módulo do php, é só usar, senão poderá usar o dl (mas tem que ter permissão).
Uma dica interessante, procure informações do Mono, no pear.php.net um projeto que compila fontes php em fontes c.
Uma dica interessante, procure informações do Mono, no pear.php.net um projeto que compila fontes php em fontes c.
28/04/2005 10:28pm
(~19 anos atrás)
(~19 anos atrás)
Pessoal, tô na mesma situação: já tenho minha dll pronta, mas toda vez que eu tento registrá-la por meio de regsvr32, por exemplo:
regsvr32 c:\diretorio\arquivo.dll
Ele dá falha de leitura.
Tentei ir em Serviços de Componente, criei uma aplicação e quando vou adicioná-la como componente, a falha é a seguinte:
"A DLL não pôde ser carregada. Verifique se todos os arquivos em tempo de execução de aplicativos e outras DLLs dependentes necessários estão disponíveis no diretório da DLL do componente ou no caminho do sistema"
Pelo que eu me lembre, essa dll não está chamando nenhuma outra que já não esteja no sistema.
E então, alguma luz?
regsvr32 c:\diretorio\arquivo.dll
Ele dá falha de leitura.
Tentei ir em Serviços de Componente, criei uma aplicação e quando vou adicioná-la como componente, a falha é a seguinte:
"A DLL não pôde ser carregada. Verifique se todos os arquivos em tempo de execução de aplicativos e outras DLLs dependentes necessários estão disponíveis no diretório da DLL do componente ou no caminho do sistema"
Pelo que eu me lembre, essa dll não está chamando nenhuma outra que já não esteja no sistema.
E então, alguma luz?