none
Utilização de DLL no Visual Studio 2013 RRS feed

  • Pergunta

  • Bom dia!

    Estou tentando utilizar uma dll na minha aplicação, mas ao dar browse e ok, nas referências, ela dá a seguinte mensagem :

    "...a reference to dll could not be added valid assembly or com component..."

    A partir daí, procurei e tentei registrar a dll, mas não obtive sucesso com os comandos que me foram apresentados (regsvr32). Utilizei ele em administrador além de estar no diretório certo e tudo mais.

    A dll em questão é uma dll da epson, para realizar comunicação entre impressora fiscal e minha aplicação.

    Utilizo Windows 81 e Visual Studio 2013. 


    terça-feira, 27 de janeiro de 2015 13:11

Todas as Respostas

  • Acesse a propriedade da referencia de sua dll e mude a CopyLocal para True
    terça-feira, 27 de janeiro de 2015 13:32
  • O problema é que não consigo nem ao menos adiciona-la. Quando vou adiciona-la ele gera a mensagem que citei acima e não consigo realizar a mudança do CopyLocal = True
    terça-feira, 27 de janeiro de 2015 13:41
  • Vai ter que fazer isso aqui
    terça-feira, 27 de janeiro de 2015 13:49
  • Poderia ser mais claro? Não estou entendendo como irei utilizar isso na minha aplicação de tal forma que a dll funcione. Importante lembrar que essa dll é baixada no próprio site da Epson e não foi criada por mim. 
    terça-feira, 27 de janeiro de 2015 13:54
  • No link que te passei tem a explicação, você ira utilizar a diretiva DLLIMPORT ou seja vai usar a dll instalado no seu sistema dessa forma, sendo que o requisito é que ela esteja instalada no sistema operacional, desse modo pode usar as funções da dll, consulte o site da epson (documentação)
    terça-feira, 27 de janeiro de 2015 14:28
  • Bom dia!

    Estou tentando utilizar uma dll na minha aplicação, mas ao dar browse e ok, nas referências, ela dá a seguinte mensagem :

    "...a reference to dll could not be added valid assembly or com component..."

    A partir daí, procurei e tentei registrar a dll, mas não obtive sucesso com os comandos que me foram apresentados (regsvr32). Utilizei ele em administrador além de estar no diretório certo e tudo mais.

    A dll em questão é uma dll da epson, para realizar comunicação entre impressora fiscal e minha aplicação.

    Utilizo Windows 81 e Visual Studio 2013. 


    Olá,

    Essa mensagem indica que a DLL não é um assembly gerenciado, ou seja, foi escrita em uma linguagem de baixo nível (C/C++, etc). Você apenas pode adicionar referência para Assemblies Gerenciados.

    No seu caso, você terá que ler a documentação dessa DLL, para ver quais funções ela exporta, e então, importa-las usando o DllImport que o Mr. GMSOFT citou.

    Não é necessário registrar DLL's nem nada. Apenas usar o DllImport. Agora, se você quiser importar classes dessa DLL, aí já complica um pouco mais..

    Pode ser que isso ajude:

    Win32: C++ para .NET – Interoperabilidade | Herbert.Lausmann

    How to Marshal a C++ Class - CodeProject


    Herbert Lausmann

    terça-feira, 27 de janeiro de 2015 22:06
  • Chegou a testar a solução informada, caso tenha resolvido não esquece de fechar sua Thread
    terça-feira, 17 de fevereiro de 2015 12:52
  • Caso tenha conseguido a solução finalize sua Thread marcando a resposta

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    domingo, 28 de junho de 2015 14:33