Jump to content

PHP + DLL


amac

Recommended Posts

Olá Boa noite a esta grande e valiosa comunidade gostaria de saber se é ou não possivél o uso de DLL puras (não são DLL com extenção COM) no php, eu verifico que no caso de dll com extensão COM é possivél o seu uso usando a livraria COM do php, para dll puras neste caso feita em purebasic não encontro forma de a usar no php. Desta forma peço mais informação a esta gande comunidade.

Obrigado

Link to comment
Share on other sites

Não é possível. Ainda a semana passada estive à procura de informação sobre isso e bati no mesmo problema, para já apenas DLLs que sejam feitas para COM podem ser usadas por PHP, encontrei essa informação algures no manual do PHP mas agora não tenho aqui o link.

A minha solução, que no projecto em que estou a trabalhar serve perfeitamente, foi criar um executável que use a DLL e que ofereça acesso às funções que ela fornece. Com PHP abro uma comunicação por pipe para o executável, envio os dados que preciso através do stdout e o executável apenas pega nos dados e passa para as funções adequadas da DLL.

Link to comment
Share on other sites

  • 2 weeks later...

Não é possível. Ainda a semana passada estive à procura de informação sobre isso e bati no mesmo problema, para já apenas DLLs que sejam feitas para COM podem ser usadas por PHP, encontrei essa informação algures no manual do PHP mas agora não tenho aqui o link.

A minha solução, que no projecto em que estou a trabalhar serve perfeitamente, foi criar um executável que use a DLL e que ofereça acesso às funções que ela fornece. Com PHP abro uma comunicação por pipe para o executável, envio os dados que preciso através do stdout e o executável apenas pega nos dados e passa para as funções adequadas da DLL.

Também já procurei bastante e nunca encontrei nenhuma funcionalidade que permitisse carregar as funções de uma DLL pura. A minha ideia seria mais ao menos usar o conceito que me fala, criar uma dll tipo COM que por sua vez interpreta-se outras dll. Já agora o exe que me fala é desenvolvido em que linguagem? Já o testou?

Obrigado

Link to comment
Share on other sites

Inicialmente pensei em criar um DLL COM que delegasse para a DLL real mas achei que estaria a complicar. Sim, já testei, aliás, já estará a ser testado pelo cliente, e funciona bastante bem para o objectivo que tenho e para os requisitos envolvidos.

Desenvolvi o executável em C++ mas na verdade não há muito código. Há uma função para cada função da DLL, código para carregar a DLL e uma ou outra operação a mais, é basicamente um wrapper para a DLL que aceita os dados por stdin.

Link to comment
Share on other sites

Por acaso não é possivél enviar o programa para andremanu@portugalmail.pt ou postar aqui

Inicialmente pensei em criar um DLL COM que delegasse para a DLL real mas achei que estaria a complicar. Sim, já testei, aliás, já estará a ser testado pelo cliente, e funciona bastante bem para o objectivo que tenho e para os requisitos envolvidos.

Desenvolvi o executável em C++ mas na verdade não há muito código. Há uma função para cada função da DLL, código para carregar a DLL e uma ou outra operação a mais, é basicamente um wrapper para a DLL que aceita os dados por stdin.

Link to comment
Share on other sites

Por acaso não é possivél enviar o programa para andremanu@portugalmail.pt ou postar aqui

Não posso fornecer o código do que desenvolvi uma vez que o sistema ainda não foi tornado público e não tenho a devida permissão, mas posso criar um exemplo que deverá dar uma ideia do quão simples é de fazer. É depois uma questão de adaptar ao DLL que estás a usar. Vou tentar não me esquecer de fazer isso hoje ou amanhã.

Link to comment
Share on other sites

Agradecia imenso.

Obrigado

Não posso fornecer o código do que desenvolvi uma vez que o sistema ainda não foi tornado público e não tenho a devida permissão, mas posso criar um exemplo que deverá dar uma ideia do quão simples é de fazer. É depois uma questão de adaptar ao DLL que estás a usar. Vou tentar não me esquecer de fazer isso hoje ou amanhã.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.