Exemplo n.º 1
0
        public void Test32BitsLoads64BitsAsData()
        {
            var loader = new AssemblySystem();
            var dll64  = Path.Combine(loader.BaseDirectory, loader.x64Directory, "RegFreeComResources.dll");

            var module = loader.ReflectionOnlyLoadFrom(dll64);

            Assert.IsNotNull(module);
            module.Dispose();
            loader.Dispose();
        }
Exemplo n.º 2
0
        public void Test32BitsLoads64BitsNoStringResource()
        {
            var loader = new AssemblySystem();
            var dll64  = Path.Combine(loader.BaseDirectory, loader.x64Directory, "RegFreeComResources.dll");

            var module = loader.ReflectionOnlyLoadFrom(dll64);
            var result = module.LoadStringTableResource(47854);

            Assert.IsNull(result);
            module.Dispose();
            loader.Dispose();
        }
Exemplo n.º 3
0
        public void TestDllDependenciesLoading()
        {
            var loader = new AssemblySystem();

            // C# loads C++ from Win32 or x64 subfolder
            var anyCpu = loader.GetAnyCpuPath(loader.BaseDirectory);

            loader.AddSearchPath(anyCpu);
            var module = loader.LoadFrom(anyCpu, "NativeLibraryConsumer.dll");
            var fn     = module.GetDelegate <fnNativeLibraryConsumer>();

            object[] retval;

            Assert.IsTrue(42 == fn(out retval));
            loader.Dispose();
        }
Exemplo n.º 4
0
        public void Test32BitsLoads64BitsCompiledResource()
        {
            var loader = new AssemblySystem();
            var dll64  = Path.Combine(loader.BaseDirectory, loader.x64Directory, "RegFreeComResources.dll");
            var module = loader.ReflectionOnlyLoadFrom(dll64);
            var result = module.LoadCompiledResource(5435);

            Assert.IsNotNull(result);
            Assert.IsTrue(result.Length > 0);
            var value = new StreamReader(result).ReadToEnd();

            StringAssert.Contains("42", value);
            result.Close();
            module.Dispose();
            loader.Dispose();
        }
Exemplo n.º 5
0
        public void TestDllDependenciesLoading()
        {
            var loader = new AssemblySystem();

            // C# loads C++ from Win32 or x64 subfolder
            var anyCpu = loader.GetAnyCpuPath(loader.BaseDirectory);
            loader.AddSearchPath(anyCpu);
            var module = loader.LoadFrom(anyCpu, "NativeLibraryConsumer.dll");
            var fn = module.GetDelegate<fnNativeLibraryConsumer>();
            object[] retval;

            Assert.IsTrue(42 == fn(out retval));
            loader.Dispose();
        }
Exemplo n.º 6
0
        public void Test32BitsLoads64BitsStringResource()
        {
            var loader = new AssemblySystem();
            var dll64 = Path.Combine(loader.BaseDirectory, loader.x64Directory, "RegFreeComResources.dll");

            var module = loader.ReflectionOnlyLoadFrom(dll64);
            var result = module.LoadStringTableResource(101);
            Assert.IsNotNullOrEmpty(result);
            module.Dispose();
            loader.Dispose();
        }
Exemplo n.º 7
0
 public void Test32BitsLoads64BitsCompiledResource()
 {
     var loader = new AssemblySystem();
     var dll64 = Path.Combine(loader.BaseDirectory, loader.x64Directory, "RegFreeComResources.dll");
     var module = loader.ReflectionOnlyLoadFrom(dll64);
     var result = module.LoadCompiledResource(5435);
     Assert.IsNotNull(result);
     Assert.IsTrue(result.Length > 0);
     var value = new StreamReader(result).ReadToEnd();
     StringAssert.Contains("42", value);
     result.Close();
     module.Dispose();
     loader.Dispose();
 }
Exemplo n.º 8
0
        public void Test32BitsLoads64BitsAsData()
        {
            var loader = new AssemblySystem();
            var dll64 = Path.Combine(loader.BaseDirectory, loader.x64Directory, "RegFreeComResources.dll");

            var module = loader.ReflectionOnlyLoadFrom(dll64);

            Assert.IsNotNull(module);
            module.Dispose();
            loader.Dispose();
        }