Merge pull request #64 from Tr4Dr/master

Fixes for the OrderSend function [MT5]
This commit is contained in:
Vyacheslav Demidyuk
2017-09-25 12:41:35 +03:00
committed by GitHub
3 changed files with 20 additions and 10 deletions
+12 -6
View File
@@ -51,9 +51,15 @@ public struct CMqlBookInfo
void convertSystemString(wchar_t* dest, String^ src) void convertSystemString(wchar_t* dest, String^ src)
{ {
pin_ptr<const wchar_t> wch = PtrToStringChars(src); if (src != nullptr) {
memcpy(dest, wch, wcslen(wch) * sizeof(wchar_t)); pin_ptr<const wchar_t> wch = PtrToStringChars(src);
dest[wcslen(wch)] = '\0'; memcpy(dest, wch, wcsnlen(wch, 1000) * sizeof(wchar_t));
dest[wcsnlen(wch, 1000)] = L'\0';
}
else
{
dest[0] = L'\0';
}
} }
#define _DLLAPI extern "C" __declspec(dllexport) #define _DLLAPI extern "C" __declspec(dllexport)
@@ -278,7 +284,7 @@ _DLLAPI int _stdcall getStringValue(int expertHandle, int paramIndex, wchar_t* r
_DLLAPI int _stdcall getULongValue(int expertHandle, int paramIndex, unsigned __int64* res, wchar_t* err) _DLLAPI int _stdcall getULongValue(int expertHandle, int paramIndex, unsigned __int64* res, wchar_t* err)
{ {
return Execute<int>([&expertHandle, &paramIndex, res]() { return Execute<int>([&expertHandle, &paramIndex, res]() {
*res = (unsigned long)MtAdapter::GetInstance()->GetCommandParameter(expertHandle, paramIndex); *res = (unsigned __int64)MtAdapter::GetInstance()->GetCommandParameter(expertHandle, paramIndex);
return 1; return 1;
}, err, 0); }, err, 0);
} }
@@ -286,7 +292,7 @@ _DLLAPI int _stdcall getULongValue(int expertHandle, int paramIndex, unsigned __
_DLLAPI int _stdcall getLongValue(int expertHandle, int paramIndex, __int64* res, wchar_t* err) _DLLAPI int _stdcall getLongValue(int expertHandle, int paramIndex, __int64* res, wchar_t* err)
{ {
return Execute<int>([&expertHandle, &paramIndex, res]() { return Execute<int>([&expertHandle, &paramIndex, res]() {
*res = (long)MtAdapter::GetInstance()->GetCommandParameter(expertHandle, paramIndex); *res = (__int64)MtAdapter::GetInstance()->GetCommandParameter(expertHandle, paramIndex);
return 1; return 1;
}, err, 0); }, err, 0);
} }
@@ -306,4 +312,4 @@ _DLLAPI int _stdcall getUIntValue(int expertHandle, int paramIndex, unsigned int
*res = (unsigned int)MtAdapter::GetInstance()->GetCommandParameter(expertHandle, paramIndex); *res = (unsigned int)MtAdapter::GetInstance()->GetCommandParameter(expertHandle, paramIndex);
return 1; return 1;
}, err, 0); }, err, 0);
} }
+7 -3
View File
@@ -9,9 +9,9 @@ namespace MTApiService
[DataMember] [DataMember]
public int Action { get; set; } public int Action { get; set; }
[DataMember] [DataMember]
public uint Magic { get; set; } public ulong Magic { get; set; }
[DataMember] [DataMember]
public uint Order { get; set; } public ulong Order { get; set; }
[DataMember] [DataMember]
public string Symbol { get; set; } public string Symbol { get; set; }
[DataMember] [DataMember]
@@ -25,7 +25,7 @@ namespace MTApiService
[DataMember] [DataMember]
public double Tp { get; set; } public double Tp { get; set; }
[DataMember] [DataMember]
public uint Deviation { get; set; } public ulong Deviation { get; set; }
[DataMember] [DataMember]
public int Type { get; set; } public int Type { get; set; }
[DataMember] [DataMember]
@@ -36,5 +36,9 @@ namespace MTApiService
public DateTime Expiration { get; set; } public DateTime Expiration { get; set; }
[DataMember] [DataMember]
public string Comment { get; set; } public string Comment { get; set; }
[DataMember]
public ulong Position { get; set; }
[DataMember]
public ulong PositionBy { get; set; }
} }
} }
+1 -1
View File
@@ -149,7 +149,7 @@ namespace MtApi5
return new ArrayList { (int)request.Action, request.Magic, request.Order, request.Symbol, request.Volume return new ArrayList { (int)request.Action, request.Magic, request.Order, request.Symbol, request.Volume
, request.Price, request.Stoplimit, request.Sl, request.Tp, request.Deviation, (int)request.Type , request.Price, request.Stoplimit, request.Sl, request.Tp, request.Deviation, (int)request.Type
, (int)request.Type_filling, (int)request.Type_time, exp, request.Comment }; , (int)request.Type_filling, (int)request.Type_time, exp, request.Comment, request.Position, request.PositionBy };
} }
#endregion #endregion