Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Скачай документацию одним файлом. Это просто!
Konstantin Staryhin
2362
Konstantin Staryhin 2012.04.09 11:04 

Большая просьба привести простейший пример функции написанной на С# для обращения к ней с мт4 ........... Передать значения а и б в функцию с шарп и вернуть результат в мт4

в статье https://www.mql5.com/ru/articles/249 компилированная dll автора работает и в мт4 и в мт5 исправно!

но когда я пытаюсь создать свою компилированную DLL с исходников автора (в VisualStudio 2010) то у меня эта dll не работает(пишет ошибка 127)

все версии .NET установлены

// код 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));
}
//+------------------------------------------------------------------+

В чем ошибка?

Konstantin Staryhin
2362
Konstantin Staryhin 2012.04.10 08:36  
???
Konstantin Staryhin
2362
Konstantin Staryhin 2012.04.11 13:23  


кто знает куда и как вставляются шаблоны в с шарпе, причина видимо только в этом

и как шаблон задействовать

<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
<TemplateData>
<Name>Testme</Name>
<Description>&lt;No description available&gt;</Description>
<ProjectType>CSharp</ProjectType>
<ProjectSubType>
</ProjectSubType>
<SortOrder>1000</SortOrder>
<CreateNewFolder>true</CreateNewFolder>
<DefaultName>Testme</DefaultName>
<ProvideDefaultName>true</ProvideDefaultName>
<LocationField>Enabled</LocationField>
<EnableLocationBrowseButton>true</EnableLocationBrowseButton>
<Icon>__TemplateIcon.ico</Icon>
</TemplateData>
<TemplateContent>
<Project TargetFileName="Testme.csproj" File="Testme.csproj" ReplaceParameters="true">
<Folder Name="DllExport" TargetFolderName="DllExport">
<ProjectItem ReplaceParameters="true" TargetFileName="DllExportAttribute.cs">DllExportAttribute.cs</ProjectItem>
</Folder>
<Folder Name="Properties" TargetFolderName="Properties">
<ProjectItem ReplaceParameters="true" TargetFileName="AssemblyInfo.cs">AssemblyInfo.cs</ProjectItem>
</Folder>
<ProjectItem ReplaceParameters="true" TargetFileName="UnmanagedExports.cs">UnmanagedExports.cs</ProjectItem>
</Project>
</TemplateContent>
</VSTemplate>

Konstantin Staryhin
2362
Konstantin Staryhin 2012.04.12 07:23  

нашел решение подробно описанное http://habrahabr.ru/post/137300/

пишем классик с нужными функциями. далее его вскрываем и подправляем код IL. и опять компилируем.

полученная длл должна по идее работать но увы

опять выдает ошибку 127.

o_O
Модератор
23407
o_O 2012.04.12 07:30  

Количество ответов от других участников по теме показывает насколько распространен C# среди них.

Походу вы единственный, кто им занимается на форуме.

Назначаем вас C# гуру форума :)


PS.

На 127 ошибку обычно в проекте С++ не хватает def файла.
Если в C# есть такой похожий файл, то найдите и добавьте в него список функций. по аналогии.

Konstantin Staryhin
2362
Konstantin Staryhin 2012.04.12 07:43  
panelektrik:


кто знает куда и как вставляются шаблоны в с шарпе, причина видимо только в этом

и как шаблон задействовать



разобрался в шаблонах, шаблон необходимо вставить в папку C:\Documents and Settings\Admin\Мои документы\Visual Studio 2010\Templates\ProjectTemplates, после этого при создании нового проекта появляется возможность его прменения. но увы многочисленные попытки не дали результата. всегда компилированная длл выдает ошибку 127
Konstantin Staryhin
2362
Konstantin Staryhin 2012.04.12 07:47  
sergeev:


Количество ответов от других участников по теме показывает насколько распространен C# среди них.

Походу вы единственный, кто им занимается на форуме.

Назначаем вас C# гуру форума :)


PS.

На 127 ошибку обычно в проекте С++ не хватает def файла.
Если в C# есть такой похожий файл, то найдите и добавьте в него список функций. по аналогии.



спасибо за ответ. думаю эта тема полезна программистам! просто те программисты которые используют еще и C# редко заходят на форум

кстати язык с шарп очень схож с mql, если решить проблему связки длл с мт4(простая и подробная инструкция) то думаю многие смогут зашивать свои алгоритмы в dll на с шарпе.

Андрей
1890
Андрей 2012.04.12 07:47  
Да напишите вы эту сумму на С++.
Быстрее результат будет.
o_O
Модератор
23407
o_O 2012.04.12 08:00  
panelektrik:



спасибо за ответ. думаю эта тема полезна программистам! просто те программисты которые используют еще и C# редко заходят на форум

похоже таковых - только вы и еще MetaDriver.

кстати язык с шарп очень схож с mql, если решить проблему связки длл с мт4(простая и подробная инструкция) то думаю многие смогут зашивать свои алгоритмы в dll на с шарпе.


неверной дорогой идете товарищи. Добрый совет - учить С++.

так как вы вскоре перейдете на MQL5, а он родимый не на С#, а на C++ идет.

Не теряйте время.

m4rkus
6
m4rkus 2012.04.12 10:53  
sergeev:

похоже таковых - только вы и еще MetaDriver.


неверной дорогой идете товарищи. Добрый совет - учить С++.

так как вы вскоре перейдете на MQL5, а он родимый не на С#, а на C++ идет.

Не теряйте время.


Шарп нынче в моде.

Друг кури http://pitforex.com/index.php?topic=916.0 тут все пошагово расписано, а хабровский и у меня 127 показывает

Konstantin Staryhin
2362
Konstantin Staryhin 2012.04.12 12:00  
m4rkus:

Шарп нынче в моде.

Друг кури http://pitforex.com/index.php?topic=916.0 тут все пошагово расписано, а хабровский и у меня 127 показывает


спасибо!!! изучаю...
/ /12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий