Run-time error '-2147024894 (80070002)'

O erro run-time error '-2147024894 (80070002)' ocorre quando tentamos instanciar a DLL e a mesma não existe na pasta da aplicação.

A solução é providenciar a cópia da DLL e as pastas URL, Schemas e DPEC para a pasta do aplicação, que provavelmente não devem existir também.

O erro também ocorre quando o framework de desenvolvimento é Visual Basic - VB 6.0, VBA ou Visual FoxPro que tem a particularidade de executar a aplicação em modo debug na pasta onde está instalado o framework (Ex. VB 6.0 => arquivos de programas\...\Microsoft Visual Studio\VB98\), bastando copiar a DLL e as pastas URL, Schemas e DPEC para a pasta.

O erro não ocorre se a aplicação for compilada, pois o executável roda na pasta da aplicação.

Para maiores detalhes dos arquivos e pastas que devem ser copiados, recomendamos a leitura do Guia de Uso da Biblioteca, disponível em http://nf-eletronica.com/blog/?page_id=118.

Muitos usuários tem dificuldade para identificar a pasta do framework utilizado.

Uma solução é utilizar a função Application.Path do VB, segue código que trata o erro e mostra o path da aplicação:

Private Sub CommandButton1_Click()

'

' Exemplo para obter versão da DLL em uso

'

'

' instancia classe

'

On Error GoTo InexisteDLL

Dim objNFeUtil As NFe_Util.Util

Set objNFeUtil = New NFe_Util.Util

'

' obtem versão

'

MsgBox "A versão da DLL é: " + objNFeUtil.Versao,

vbInformation, "Resultado"

'

' libera classe

'

Set objNFeUtil = Nothing

Exit Sub

InexisteDLL:

MsgBox "A DLL NFe_Util e demais pastas devem ser copiadas para a pasta: " + Application.Path, vbCritical, "Erro"

End Sub