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!