"Yönetilmeyen dışa aktarmaları kullanarak C# kodunu MQL5'e gösterme" makalesi için tartışma - sayfa 2
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Umarım RGiesecke yakında cevap verir, şu adresten takip edebilirsiniz
http://stackoverflow.com/questions/4642548/how-to-use-a-net-assembly-in-delphi-without-registering-it-in-the-gac-or-com/5497058#5497058
*Bu makaleyi yazdığınız için çok teşekkürler! Çok iyi yazılmış ve çok sayıda örnek son derece yararlı.
Benim için en büyük engel değişken tiplerini ve bunların nasıl ileri geri aktarılacağını bulmaktı. (özellikle diziler ve dizeler) Metatrader için bazı paylaşılan C# kütüphaneleri görmek harika olurdu. Daha fazla şey öğrendiğimde ve bazı yararlı kütüphaneler oluşturduğumda, onlara katkıda bulunup bulunamayacağıma bakacağım.
Deneme yanılma yoluyla öğrenmek yerine bana çok zaman kazandırdınız. Bilginizi paylaştığınız için teşekkürler.
Minnettarım! :-)
Merhaba
Aniden (?) DLL işlevimin "TestMe.dll" içinde 'Add' bulunamıyor" hata mesajını döndürmesiyle ilgili bir sorunum var. Bu sizin kodunuzu kullanan basit bir örnektir:
using System;
using System.Text;
using RGiesecke.DllExport;
using System.Runtime.InteropServices;
namespace Testme
{
class Test
{
[DllExport("Add", CallingConvention = CallingConvention.StdCall)]
public static int Add(int left, int right)
{
return left + right;
}
}
}
Bunu bir .mql dosyasında kullanmak:
#import "Testme.dll"
int Add(int left,int right);
#import
void OnStart()
{
//---
for(int i=0; i<3; i++)
{
Print(Add(i,666));
}
}
--> 'Testme.dll' içinde 'Add' bulunamıyor
DLL'lerin nasıl çağrılacağı konusunda kaçırdığım bir değişiklik mi var?
Herhangi bir görüş çok takdir edilir
Thomas
Merhaba
Ayrıca aniden bir sorun yaşadım (ilk başta çalıştı, ama ...), örnek dll'i derlediğimde
'C:\Users\internal228\AppData\Local\Temp\tmpAFBE\UELTest.x86.il' dosyasını DLL'ye birleştirme --> 'C:\Users\internal228\Documents\Visual Studio 2010\Projects\UnmanagedLibTest\UELTest\bin\Debug\x86\UELTest.dll'
Kaynak dosya UNICODE'dur
***** ARIZA *****
UELTest
Gözden kaçırdığım bir şey var mı?
Windows 7; VisualStudio 2010;
Herhangi bir görüş çok takdir edilir.
Risan
**GÜNCELLEME** Çözüldü teşekkürler!
Selamlar,
C# Express 2010'da bir dll yazmak için prosedürü tamamen takip ettim. Şablon çalışmadı, bu yüzden dll dosyalarını yeni bir projeye manuel olarak ekledim ve her şey güzelce derlendi (belki burada yanlış bir şey yaptım).
Sadece çalışıp çalışmadığını test etmek için iki kolay fonksiyon yazdım ve Metatrader 4 dışında test ediyorum. Aşağıdaki hatayı alıyorum:
2011.10.29 20:13:37 2000.01.03 00:00 Expert_NN_1_1 USDJPY,H1: 'NN 1 DLL.dll' dll'inden 'sum' fonksiyonu çağrılamıyor(hata 127)
Sorunun ne olabileceği hakkında bir fikriniz var mı? DLL MT4'ümü yükledi, kontrol ettim, ancak işlevi çağırmak istemiyor. Bu sorunun MT4'te yönetilen bir dll çağırmaya çalışırken ortaya çıktığını fark ettim, ancak bu makalede açıklanan prosedürün sorunu çözmesi gerekiyor, değil mi?
Herhangi bir yardım takdir edilecektir
Teşekkürler!
Merhaba,
Bu kadar iyi yazılmış bir makale için takdirlerimi iletmek isterim.
Robert Giesecke'nin site bilgileri çok değerliydi.
Çok şey öğrendim. VB.NET'i tercih ettiğimde başka bir C++ sarmalayıcı yazmama gerek kalmaması harika bir şey.
Çok teşekkürler.
Şerefe,
Gordon
Merhaba,
Aynı sorunu yaşıyorum.... süslediğim yöntemler mt5'te bulunmuyor !!!
lütfen yardım edin! (vs2010 ve şablon kullanıyorum)
Yayınlanan makale Yönetilmeyen kodu dışa aktararak MQL5'ten C# dünyasına nasıl açılır:
Yazar: investeo
makalede https://www.mql5.com/tr/articles/249 yazarın derlenmiş dll'i mt4 ve mt5'te doğru çalışıyor!
ancak yazarın kaynağından kendi derlenmiş dll'imi oluşturmaya çalıştığımda (VisualStudio 2010'da), bu dll çalışmıyor (hata 127 yazıyor)
.NET'in tüm sürümleri yüklü
// код C#
using System;
using System.Text;
using RGiesecke.DllExport;
using System.Runtime.InteropServices;
namespace TEST
{
class TEST
{
[DllExport("Add", CallingConvention = CallingConvention.StdCall)]
public static int Add(int left, int right)
{
return left + right;
}
}
}
namespace RGiesecke.DllExport
{
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
partial class DllExportAttribute : Attribute
{
public DllExportAttribute()
{
}
public DllExportAttribute(string exportName)
: this(exportName, CallingConvention.StdCall)
{
}
public DllExportAttribute(string exportName, CallingConvention callingConvention)
{
ExportName = exportName;
CallingConvention = callingConvention;
}
public CallingConvention CallingConvention { get; set; }
public string ExportName { get; set; }
}
}
// код МТ4
//+------------------------------------------------------------------+
#import "TEST.dll"
int Add(int a,int b);
#import
void start()
{
Comment(Add(3,2));
}
//+------------------------------------------------------------------+
ve şablon nasıl devreye sokulur?
c-sharp'ta şablonların nereye ve nasıl eklendiğini bilen var mı, nedeni görünüşe göre sadece bu
ve şablon nasıl devreye sokulur?
http://softblog.violet-tape.ru/2010/05/06/visual-studio-templates/
VS2010 için en altta.
ve en altta faydalı bilgiler var.