기고글 토론 "관리되지 않는 내보내기를 사용하여 MQL5에 C# 코드 노출" - 페이지 2

 
How to use a .Net Assembly in Delphi without registering it in the GAC or COM?
How to use a .Net Assembly in Delphi without registering it in the GAC or COM?
  • stackoverflow.com
i have a simple task: is it possible to write a Delphi DLL and put a .Net Assembly (with only one interface with 4 methods and one class implementing the interface) besides it and call it from the
 

*이 글을 작성해 주셔서 정말 감사합니다! 매우 잘 작성되어 있고 다양한 예제가 매우 유용합니다.

저에게 가장 큰 장애물은 변수 유형과 이를 앞뒤로 전달하는 방법을 알아내는 것이었습니다. (특히 배열과 문자열) 메타트레이더용 공유 C# 라이브러리가 있으면 좋을 것 같습니다. 더 많이 배우고 유용한 라이브러리를 구축하면 기여할 수 있는지 알아보겠습니다.

시행착오를 통해 배우는 대신 많은 시간을 절약할 수 있었습니다. 지식을 공유해 주셔서 감사합니다.

정말 감사합니다! :-)

 

안녕하세요

갑자기(?) 제 DLL 함수가 "'TestMe.dll'에서 '추가'를 찾을 수 없습니다"라는 오류 메시지를 반환하는 문제가 있습니다. 다음은 코드를 사용한 간단한 예제입니다:

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)
{
반환 왼쪽 + 오른쪽;
}
}
}

.mql 파일에서 사용:

#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'에서 'Add'를 찾을 수 없습니다.

제가 놓친 DLL 호출 방법이 변경되었나요?

어떤 의견이라도 대단히 감사하겠습니다.

Thomas

 

안녕

나는 또한 갑자기 문제가 생겼습니다 (처음에는 작동했지만 ...), 샘플 dll을 컴파일 할 때 다음과 같은 문제가 발생했습니다.

'C:\사용자\내부228\앱데이터\로컬\템프\tmpAFBE\UELTest.x86.il'을 DLL로 조립 --> 'C:\사용자\내부228\문서\비주얼 스튜디오 2010\프로젝트\UnmanagedLibTest\UELTest\bin\Debug\x86\UELTest.dll'

소스 파일은 유니코드입니다.

***** 실패 *****

UELTest

제가 놓친 것이 있나요?

윈도우 7; 비주얼스튜디오 2010;

의견을 주시면 감사하겠습니다.

Risan

 

**업데이트** 고마워요!


안녕하세요,

C# Express 2010에서 dll을 작성하기 위해 절차를 완전히 따랐습니다. 템플릿이 작동하지 않아 새 프로젝트에 dll 파일을 수동으로 추가했고 모든 것이 잘 컴파일되었습니다 (여기서 뭔가 잘못했을 수도 있습니다).

작동하는지 테스트하기 위해 간단한 함수 두 개를 작성했고 Metatrader 4에서 테스트 중입니다. 다음과 같은 오류가 발생합니다:


2011.10.29 20:13:37 2000.01.03 00:00 Expert_NN_1_1 USDJPY,H1: dll 'NN 1 DLL.dll'에서 'sum' 함수를 호출할 수 없습니다(오류 127).


문제가 무엇인지 아십니까? DLL이 내 MT4에로드되어 있지만 함수를 호출하고 싶지 않습니다. MT4에서 관리되는 dll을 호출하려고 할 때이 문제가 나타나는 것을 발견했지만이 문서에 설명 된 절차가 문제를 해결해야하는 것으로 예상됩니까?

어떤 도움을 주시면 감사하겠습니다.

고마워요!

 

안녕하세요,

잘 작성된 기사에 대해 감사의 말씀을 전하고 싶습니다.

로버트 기세케에 대한 사이트 세부 정보는 매우 귀중했습니다.

많은 것을 배웠습니다. VB.NET을 선호할 때 다른 C++ 래퍼를 작성할 필요가 없다는 것은 멋진 일입니다.

감사합니다.

Cheers,

Gordon

 

안녕하세요,

나는 같은 문제가 있습니다.... 내가 장식하는 방법은 mt5에서 찾을 수 없습니다 !!!

pls 도움말! (나는 vs2010과 템플릿을 사용하고 있습니다)

 
mt4(또는 mt5)에서 액세스하기 위해 C#으로 작성된 함수의 간단한 예제에 대한 큰 요청 ........... Sharp를 사용하여 함수에 a 및 b 값을 전달하고 결과를 mt4(mt5)에 반환합니다

기사에서 https://www.mql5.com/ko/articles/249 작성자의 컴파일 된 dll은 mt4 및 mt5에서 올바르게 작동합니다!

그러나 작성자의 소스에서 직접 컴파일 된 dll을 만들려고하면이 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));
}
//+------------------------------------------------------------------+

오류가 무엇인가요?
Как открыть мир C# из MQL5 путем экспорта неуправляемого кода
Как открыть мир C# из MQL5 путем экспорта неуправляемого кода
  • 2011.02.09
  • investeo
  • www.mql5.com
В данной статье я представил различные методы взаимодействия между кодом, написанным на MQL5, и управляемым кодом на C#. Также я подготовил несколько примеров маршалинга структур MQL5 для C# и примеров вызова экспортированных функций DLL в скриптах на MQL5. Приведенные примеры могут служить основой для дальнейших исследований аспектов написания DLL в управляемом коде. Эта статья также открывает двери для использования в MetaTrader 5 множества библиотек, уже реализованных на C#.
 
템플릿이 어디에 어떻게 삽입되는지 누가 알고 있는지, 그 이유는 분명히 이것

그리고 참여하기 위해 템플릿을 만드는 방법?
 
panelektrik:
템플릿이 c-sharp에 삽입되는 위치와 방법을 아는 사람, 그 이유는 분명히 이것

그리고 템플릿을 사용하는 방법?

http://softblog.violet-tape.ru/2010/05/06/visual-studio-templates/

하단에 VS2010의 경우

그리고 맨 아래에 유용한 정보가 있습니다.

Visual Studio. Заготовки проектов
Visual Studio. Заготовки проектов
  • www.rootfront.com
В последнее время я не просто много, а очень много экспериментирую с кодом, подходами, написаниями каких-то тестовых сценариев и приложений. Результат, конечно, всегда разный, ну да не об этом сегодня пойдет речь. Постепенно начинаешь уставать от настройки стандартных проектов. Для проекта библиотек надо удалить класс, создаваемый там по...