Certo!
O que pega é o seguinte: Na parte do Delphi não pode ter coisas de terceiro, regra da empresa e sofrimento para o desenvolvedor, por exemplo, o outro desenvolvedor aqui fez um boleto todo em Canvas pq a chefia não gosta que usa gerador de relatórios. Já a parte que desenvolvemos em C# é mais livre, podemos usar algumas coisas prontas que não tem problema.
A principio fizemos uma criptografia no Delphi sem usar componente de terceiro e tentamos criar uma DLL para usar no C#, só que o retorno do Delphi esta caducando no C#.
Segue os códigos
Delphi - Esta recebendo um Texto e retorna o mesmo criptografado, so que no C# não estamos conseguindo receber um simples texto.
library DllDelphiWs;
uses
System.SysUtils,
System.Classes,
EZCrypt in 'EZCrypt.pas';
{$R *.res}
function Criptografar (Texto: String): WideString; stdcall; export;
var Key: TWordTriple;
TextoI: String;
AnsString : AnsiString;
begin
Result:= 'RETORNAR UM SIMPLES TEXTO';
end;
exports Criptografar;
begin
end.
Segue o Codigo em C#
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
String t = textBox1.Text;
string s = Criptografar(t);
richTextBox1.Text = t;
}
[DllImport(@"C:\projetos\DelphiDllWebService\Win32\Debug\DllDelphiWs.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
public static extern string Criptografar([MarshalAs(UnmanagedType.BStr)]string Result);
}
}
Nesse caso temos que resolver o retorno que vem do Delphi.