Bom dia Estou tentando importar uma DLL de Interpretador de Código: Código: DEFINE VARIABLE ghCall AS HANDLE NO-UNDO. DEFINE VARIABLE cRetorno AS INTEGER NO-UNDO. DEFINE VARIABLE cParam AS CHARACTER NO-UNDO. IF NOT VALID-HANDLE(ghCall) THEN CREATE CALL ghCall. ASSIGN ghCall:LIBRARY = 'C:\Users\Matheus\Interpretador\Eval\Eval\bin\Eval.dll' ghCall:CALL-NAME = 'eval' ghCall:CALL-TYPE = DLL-CALL-TYPE ghCall:NUM-PARAMETERS = 1 ghCall:RETURN-VALUE-DLL-TYPE = 'CHARACTER'. ASSIGN cparam = '1 + 1'. ghCall:SET-PARAMETER(1, 'CHARACTER', 'INPUT', cParam). ghCall:INVOKE. ASSIGN cRetorno = ghCall:RETURN-VALUE. ghCall:CLEAR(). Porem me ocorre o seguinte erro: Aqui esta o código da DLL feita em C#. Código: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Runtime.InteropServices; using Eval4; using Eval; using RGiesecke.DllExport; namespace Eval { public static class Eval { static Eval4.Core.IParsedExpr mResult; [DllExport("eval", CallingConvention = CallingConvention.Cdecl)] public static String eval(String eval) { Eval4.MathEvaluator ev = new Eval4.MathEvaluator(); mResult = ev.Parse(eval); return ev.ConvertToString(mResult.ObjectValue); } } } Alguém tem ideia de como solucionar esse problema, ou até mesmo se conhece alguma outra dll de interpretador de código que funcione com progress? Qualquer sugestão sera bem vinda.
Solucionado. desconbri que posso fazer pelo proprio progress. Código: cExpression = "IF 2 + 2 = 4 THEN YES ELSE NO". QUERY q:QUERY-PREPARE("FOR EACH tt WHERE DYNAMIC-FUNCTION('GetLogical', " + cExpression + ") = TRUE"). QUERY q:QUERY-OPEN(). QUERY q:QUERY-CLOSE. MESSAGE lResult VIEW-AS ALERT-BOX INFO BUTTONS OK.