Подскажите как написать DLL на C# ? постоянно выдает ошибку 127

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Konstantin Staryhin
2358
Konstantin Staryhin  

Большая просьба привести простейший пример функции написанной на С# для обращения к ней с мт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
2358
Konstantin Staryhin  
???
Konstantin Staryhin
2358
Konstantin Staryhin  


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

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

<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
2358
Konstantin Staryhin  

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

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

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

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

---
22853
---  

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

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

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


PS.

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

Konstantin Staryhin
2358
Konstantin Staryhin  
panelektrik:


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

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



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


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

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

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


PS.

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



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

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

Андрей
1893
Андрей  
Да напишите вы эту сумму на С++.
Быстрее результат будет.
---
22853
---  
panelektrik:



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

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

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


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

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

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

m4rkus
6
m4rkus  
sergeev:

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


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

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

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


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

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

Konstantin Staryhin
2358
Konstantin Staryhin  
m4rkus:

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

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


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