У меня есть код в C#
, этот код следует экспортировать как необработанный код, поскольку он будет использоваться MetaTrader Terminal 4 как #import
-ed библиотека ( .dll
).
Основные вопросы:
Q1 )
Могу ли я использовать пространства именsystem.net
иsystem.net.mail
для экспорта в качестве неуправляемогоDLL
?Q2 )
< /strong> Если нет, то какое решение для этого лучше (экспортDLL
как неуправляемый и со ссылкой на пространства имен)?Q3 )
Почему экспорт не работает для этой функции (EnviarCorreo )?
Спасибо.
using System;
using System.Text;
using RGiesecke.DllExport;
using System.Runtime.InteropServices;
using System.Net;
using System.Net.Mail;
namespace Testme
{
class Test
{
[DllExport("EnviarCorreo", CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)]
[return: MarshalAs(UnmanagedType.LPWStr)]
public static int EnviarCorreo(string ServidorSMTP, string usuario, string pass, bool HTML, string Asunto, string Cuerpo, string Desde, string Para)
{
MailMessage mail = new MailMessage();
//direccion desde
mail.From = new MailAddress("[email protected]", "Name");
mail.ReplyTo = new MailAddress("[email protected]");
MailAddress toa = new MailAddress("[email protected]");
string contenido = "Aquí vamos a escribir en HTML <br>Para ver</br>";
mail.BodyEncoding = Encoding.Unicode;
mail.SubjectEncoding = Encoding.Unicode;
mail.To.Clear();
mail.To.Add(toa);
mail.Subject = "PRUEBA DE CORREO";
mail.Body = contenido;// +Constants.vbCr + Constants.vbLf;
mail.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient("mail.domain.com");
smtp.Credentials = new NetworkCredential("[email protected]", "blabla");
smtp.Send(mail);
return 158;
}
[DllExport("Add", CallingConvention = CallingConvention.StdCall)]
public static int Add(int left, int right)
{
return left + right;
}
[DllExport("Sub", CallingConvention = CallingConvention.StdCall)]
public static int Sub(int left, int right)
{
return left - right;
}
[DllExport("AddDouble", CallingConvention = CallingConvention.StdCall)]
public static double AddDouble(double left, double right)
{
return left + right;
}
[DllExport("AddFloat", CallingConvention = CallingConvention.StdCall)]
public static float AddFloat(float left, float right)
{
return left + right;
}
}
}
Export doesnt work
не является хорошим объяснением. Пожалуйста, дополните. - person GSerg   schedule 18.05.2016DllExport
. Это не стандарт, и это может быть это или что-то еще. - person GSerg   schedule 18.05.2016