Pergunta

Estou certo de que este problema foi resolvido antes e estou curioso como o seu feito. Eu tenho o código em que, quando executado, eu quero verificar o conteúdo de um diretório e de carga em termos de funcionalidade.

Especificamente, eu estou trabalhando com um mecanismo de script que eu quero ser capaz de adicionar chamadas de função para. Eu quero que o motor principal para fornecer a funcionalidade muito limitada. O usuário deve ser capaz de adicionar funções adicionais através de bibliotecas 3o partido, o que eu quero o motor para procurar e carga. Como isso é feito?

Foi útil?

Solução

Depende da plataforma. No win32, você chama LoadLibrary para carregar uma DLL, em seguida, obter funções dele com GetProcAddress. Em plataformas UNIXy, os equivalentes são dlopen e dlsym.

Outras dicas

Você pode usar o POSIX dlopen / dlsym / dlerror / dlclose funções em Linux / UNIX para bibliotecas compartilhadas dinamicamente abertas e acesso aos símbolos (incluindo funções) eles fornecem, consulte o homem página para mais detalhes.

Se você quiser usar uma biblioteca para isso, eu recomendo GLib (a biblioteca utilitário que está por trás do kit de ferramentas GTK + UI). Ele apresenta o " gmodule " sub-API, que fornece uma maneira limpa, portátil de fazer isso. Isso evita que você tenha de envolver as chamadas relevantes si mesmo, e também traz para você o resto da GLib que é muito útil para ter em programas C de qualquer tamanho.

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