Pergunta

Eu construí um aplicativo Windows C ++ que eu gostaria de porta para linux. As principais razões para fazer isso é a facilidade de manutenção do sistema para a nossa equipe de TI. Além da uma máquina Windows que executa esta aplicação nós somos um linux única operação.

A razão que esta aplicação foi construída in-, e corre on- janelas é que ele usa uma API do Windows (DLL e cabeçalho) para se conectar a um servidor pertencente a uma parte externa. Esta conexão usa algum protocolo proprietário que eu realmente não quero mexer com, (e eu acho que estou contratualmente não permitido) então eu estou preso com o arquivo .dll.

Esta dll é janelas só por causa de (eu suspeito) janelas soquetes código específico na dll. Para além de que ele não faz um monte de coisas avançadas. Existe uma maneira em algum lugar entre apenas executar o aplicativo no Linux em vinho e farejar o protocolo e reimplementar a DLL mim mesmo que vai permitir-me para obter este aplicativo seja executado em uma máquina linux?

Esta ideia foi inspirada por este artigo sobre a Qt Creator portanto, qualquer solução que me permite jogar com isso seria legal extra.

Foi útil?

Solução

O meio termo mais óbvia seria usar Winelib . Eu não sei se ele pode ligar diretamente para uma DLL nativa, mas se não você provavelmente poderia carregá-lo com LoadLibrary().

Você poderia, então, dividir sua aplicação em duas partes: um invólucro que só chama o DLL, e o resto do código de falar com o seu invólucro. Você poderia ter, tanto em processos separados, e, portanto, apenas o invólucro teria que ser compilado com Winelib. O resto da aplicação poderia então usar qualquer quadro que você deseja.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top