Carregar biblioteca DLL de 32 bits no aplicativo de 64 bits

Existe uma maneira de carregar uma biblioteca DLL de 32 bits (algo com o mesmo uso que LoadLibrary) Eu gostaria de usar essa function junto com GetProcAddress.

Eu olhei para WOW, mas parece não oferecer a funcionalidade. A funcionalidade deve existir, uma vez que ferramentas como DependencyWalker são capazes de ler os símbolos de uma dll de 32 bits, mesmo que seja de 64 bits.

obrigado

Desculpe, mas você só pode carregar uma DLL de 32 bits em um processo de 64 bits quando estiver carregando a dll como um arquivo de dados. Você não pode executar o código. http://support.microsoft.com/kb/282423

A Microsoft recomenda que você use o interprocess COM para usar o código de 32 bits com um aplicativo de 64 bits. Aqui está um artigo explicando o processo http://blog.mattmags.com/2007/06/30/accessing-32-bit-dlls-from-64-bit-code/ Não é divertido.

Há uma diferença entre ler um executável de 32 bits e executar código dentro de um executável de 32 bits. Eu não acredito que o Windows ofereça qualquer funcionalidade para fazer isso.

A única maneira de fazer isso é criar um processo de 32 bits que carregue a dll e, em seguida, faça uma comunicação entre processos para passar os resultados entre os dois processos.

Se tudo o que você deseja fazer é obter resources, você pode carregar como um arquivo de dados:

LoadLibraryEx(exeName, NULL, LOAD_LIBRARY_AS_DATAFILE); 

Em seguida, chame FindResource como normal.