示例#1
0
 public virtual ProcedureCharacteristics LookupCharacteristicsByName(string procName)
 {
     EnsureTypeLibraries(PlatformIdentifier);
     return(CharacteristicsLibs.Select(cl => cl.Lookup(procName))
            .Where(c => c != null)
            .FirstOrDefault());
 }
示例#2
0
        public override ExternalProcedure LookupProcedureByName(string moduleName, string procName)
        {
            EnsureTypeLibraries("win64");
            var ep = TypeLibs.Select(t => t.Lookup(procName))
                     .Where(sig => sig != null)
                     .Select(s => new ExternalProcedure(procName, s))
                     .FirstOrDefault();

            if (ep != null)
            {
                var ch = CharacteristicsLibs
                         .Select(c => c.Lookup(ep.Name))
                         .FirstOrDefault();
                ep.Characteristics = ch;
            }
            return(ep);
        }
示例#3
0
        public override ExternalProcedure LookupProcedureByName(string moduleName, string procName)
        {
            //$REVIEW: looks a lot like Win32library, perhaps push to parent class?
            EnsureTypeLibraries(PlatformIdentifier);
            var sig = Metadata.Lookup(procName);

            if (sig == null)
            {
                return(null);
            }
            var proc            = new ExternalProcedure(procName, sig);
            var characteristics = CharacteristicsLibs.Select(cl => cl.Lookup(procName))
                                  .Where(c => c != null)
                                  .FirstOrDefault();

            if (characteristics != null)
            {
                proc.Characteristics = characteristics;
            }
            return(proc);
        }