Пример #1
0
        public static EocDll Translate(ProjectConverter P, DllDeclareInfo rawInfo)
        {
            var libraryName = rawInfo.LibraryName;
            var entryPoint  = rawInfo.EntryPoint;

            if (string.IsNullOrEmpty(entryPoint))
            {
                entryPoint = P.IdToNameMap.GetUserDefinedName(rawInfo.Id);
            }
            var name = P.GetUserDefinedName_SimpleCppName(rawInfo.Id);
            var info = new EocCmdInfo()
            {
                ReturnDataType = rawInfo.ReturnDataType == 0 ? null : EocDataTypes.Translate(P, rawInfo.ReturnDataType),
                CppName        = $"{P.DllNamespace}::{name}",
                Parameters     = rawInfo.Parameters.Select((x) =>
                {
                    var dataType = EocDataTypes.Translate(P, x.DataType, x.ArrayParameter);
                    return(new EocParameterInfo()
                    {
                        ByRef = x.ByRef || x.ArrayParameter || !EocDataTypes.IsValueType(dataType),
                        Optional = false,
                        VarArgs = false,
                        DataType = dataType,
                        CppName = P.GetUserDefinedName_SimpleCppName(x.Id)
                    });
                }).ToList()
            };

            return(new EocDll(P, name, info, libraryName, entryPoint));
        }
Пример #2
0
 public EocCmdInfo GetEocCmdInfo(DllDeclareInfo x)
 {
     return(new EocCmdInfo()
     {
         ReturnDataType = x.ReturnDataType == 0 ? null : GetCppTypeName(x.ReturnDataType),
         CppName = GetCppMethodName(x.Id),
         Parameters = x.Parameters.Select(GetEocParameterInfo).ToList()
     });
 }
Пример #3
0
        public static EocDll Translate(ProjectConverter P, DllDeclareInfo dllDeclare)
        {
            var libraryName = dllDeclare.LibraryName;
            var entryPoint  = dllDeclare.EntryPoint;

            if (string.IsNullOrEmpty(entryPoint))
            {
                entryPoint = P.IdToNameMap.GetUserDefinedName(dllDeclare.Id);
            }
            return(new EocDll(P, P.GetUserDefinedName_SimpleCppName(dllDeclare.Id), P.GetEocCmdInfo(dllDeclare), libraryName, entryPoint));
        }
Пример #4
0
 public static EocDll Translate(ProjectConverter P, DllDeclareInfo dllDeclare)
 {
     return(new EocDll(P, P.GetUserDefinedName_SimpleCppName(dllDeclare.Id), P.GetEocCmdInfo(dllDeclare), dllDeclare.LibraryName, dllDeclare.EntryPoint));
 }