Pergunta

Então, eu estou usando um SDK para um gerador de números aleatórios hardware que fornece uma dll chamado PsyREG.dll para interagir com ele, bem como alguns c # fonte para usar os métodos do dll.

Tem funcionado no passado, mas de alguma forma ele parou de funcionar. Minhas mãos são um pouco amarrado como eu realmente não têm acesso ao dispositivo em questão, no momento, por isso não pode tentar um monte de coisas ...

No entanto, aqui está a coisa estranha. A dll está lá, no mesmo lugar que sempre foi. AHD de fato File.Exists ( "PsyREG.dll") retorna verdade, e eu dobro verificado e isso é exatamente da mesma maneira os fornecida C # fonte importações de TI, por exemplo, [DllImport ( "PsyREG.dll")].

Todas as idéias?

Foi útil?

Solução

É provavelmente esta dll tem algumas dependências que não estão registrados ou Arent na mesma pasta do seu aplicativo.

Outras dicas

Open DLL no sistema problemático em http://www.dependencywalker.com/

Talvez você deve verificar para ver se você está esperando uma versão do produto específico da dll, e certifique-se que as versões do produto ainda igualar-se corretamente.

Eu corri para este problema e resolvido com o seguinte:

Há uma dependência de msvcr90.dll se você compilar sob / MD. Tente compilar o código com / MT vez.

Project properties> C/C++> Code Generation> Runtime Library: /MT

eu estava lidando com a mesma exceção com relação a um dos meus DLL (vamos chamá-lo A). C # foi bater porque ele alegou que não poderia encontrar esta DLL (A) (enquanto ele estava lá na mesma pasta que o executável).

-se que o problema foi causado por A ter dependência de outro DLL (chamemos-lhe B). B não estava no caminho para A não podia carregá-lo quando ele precisava. Desde B precisava de um monte de outras DLL, a solução foi adicionar diretório do B à variável de ambiente PATH.

É interessante como C # falhas com o erro dizendo que A não é encontrado quando na verdade B não foi encontrado ...

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