На коленке получилось вот так:
Код:
FUNCTION SuperWConcat : BOOL //Объединение двух мега-строк в одну
VAR_INPUT
Address1: POINTER TO BYTE;
Address2: POINTER TO BYTE;
Address3: POINTER TO BYTE;
Len1: DWORD;
Len2: DWORD;
END_VAR
//Присваиваем
Memutils.MemCpy(Address3, Address1, Len1 * 2);
Memutils.MemCpy(Address3 + Len1 * 2, Address2, Len2 * 2);
//Бесполезный выход функции
SuperWConcat := FALSE;
Основной код для вызова:
Код:
PROGRAM qqq2
VAR
aaa1: WSTRING(64000) := "qwerty123";
aaa2: WSTRING(64000) := "йцукен456";
aaa3: WSTRING(64000) := "";
Temp : BOOL := FALSE;
END_VAR
Temp := SuperWConcat(ADR(aaa1), ADR(aaa2), ADR(aaa3), STU.StrLenW(ADR(aaa1)), STU.StrLenW(ADR(aaa2)));
В бою ещё не проверял, будем тестить
Всем спасибо