0

Como posso chamar uma DLL pelo PHP ?

criado por José Henrique Kracik da Silva em 17/04/2002 12:18pm
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

Lista de Respostas:

0
18/04/2002 3:30am
(~23 anos atrás)
ASSUMINDO QUE ESSA DLL SUA SEJA UM MODULO DO PHP

0
18/04/2002 3:30am
(~23 anos atrás)
ASSUMINDO QUE ESSA DLL SUA SEJA UM MODULO DO PHP

0
18/04/2002 3:30am
(~23 anos atrás)
ASSUMINDO QUE ESSA DLL SUA SEJA UM MODULO DO PHP

0
18/04/2002 3:30am
(~23 anos atrás)
ASSUMINDO QUE ESSA DLL SUA SEJA UM MODULO DO PHP VC PODERIA USAR
A FUNCAO DL

0
18/04/2002 6:36am
(~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

0
18/04/2002 11:44am
(~23 anos atrás)
Mario André respondeu:
A função

include()

não dá?

0
18/04/2002 12:33pm
(~23 anos atrás)
Felipe Lopes respondeu:
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

0
18/04/2002 6:00pm
(~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;
?>

0
19/04/2002 2:13pm
(~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.

0
24/04/2002 6:47am
(~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.

0
11/08/2003 7:21am
(~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

0
08/06/2004 9:43pm
(~20 anos atrás)
Alessander Thomaz respondeu:
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.

0
28/04/2005 10:28pm
(~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?

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)