none
C# Dll Não gerenciada, erro (Additional information: Não é possível localizar um ponto de entrada denominado) RRS feed

  • Pergunta

  • Boa tarde,

    Estou precisando desenvolver uma dll com métodos que possam ser utilizados em um projeto delphi. Criei um projeto teste inicialmente para simplificar meu entendimento de como utilizar a interoperabilidade.

    Criei um projeto 'Class Library' com c# simulando uma dll exportável:

      public class Mensagens
        {
          
            [DllExport("CaixaDeMensagem",CallingConvention.StdCall)]
            public static void MessageBox(string mensagem)
            {
                MessageBox.Show(mensagem);
            }
        }

    ..

    Após, compilei e copiei a dll para o projeto onde importo a dll:

     public partial class FrmPrincipal : Form
        {
            public FrmPrincipal()
            {
                CaixaDeMensagem("teste");
    
            }
    
            [DllImport("DllExportavel.dll", EntryPoint = "CaixaDeMensagem", CharSet = CharSet.Unicode)]
            public static extern void CaixaDeMensagem(string mensagem);
        }
    Me retorna sempre o erro:
    System.EntryPointNotFoundException was unhandled
      HResult=-2146233053
      Message=Não é possível localizar um ponto de entrada denominado 'CaixaDeMensagem' na DLL 'DllExportavel.dll'.
      Source=Windows
      TypeName=""
      StackTrace:
           em Windows.FrmPrincipal.CaixaDeMensagem(String mensagem)
           em Windows.FrmPrincipal..ctor() na c:\users\tiago\documents\visual studio 2015\Projects\InteroperabilidadeTestando\Windows\FrmPrincipal.cs:linha 20
           em Windows.Program.Main() na c:\users\tiago\documents\visual studio 2015\Projects\InteroperabilidadeTestando\Windows\Program.cs:linha 20
           em System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
           em System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
           em Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
           em System.Threading.ThreadHelper.ThreadStart_Context(Object state)
           em System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
           em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
           em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
           em System.Threading.ThreadHelper.ThreadStart()
      InnerException: 
    

    Alguém tem alguma dica do que estou fazendo de errado? Já tentei várias coisas.. obrigado!

    quarta-feira, 22 de junho de 2016 16:54