Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 7b1773c

Browse files
committed
Initial commit
0 parents  commit 7b1773c

File tree

11 files changed

+1767
-0
lines changed

11 files changed

+1767
-0
lines changed

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Debug/
2+
Release/
3+
obj/
4+
.vs/
5+
*.suo
6+
*.user

DLLFromMemory.cs

Lines changed: 982 additions & 0 deletions
Large diffs are not rendered by default.

LICENSE.txt

Lines changed: 373 additions & 0 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# DLLFromMemory.Net
2+
A C# library to load a native DLL from memory without the need to allow unsafe code.
3+
4+
By default C# can load external libraries only via files on the filesystem.
5+
A common workaround for this problem is to write the DLL into a temporary file first and import it from there.
6+
This library can be used to load a DLL completely from memory - without storing on the disk first.
7+
8+
It supports both 32bit and 64bit processes/DLLs, as well as AnyCPU builds.
9+
For AnyCPU, both 32bit and 64bit DLLs must be available in memory (see [Sample](Sample.cs))
10+
11+
## Example
12+
```C#
13+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] delegate int AddDelegate(int a, int b);
14+
15+
static void RunAdd(byte[] dllBytes)
16+
{
17+
DLLFromMemory dll = new DLLFromMemory(dllBytes);
18+
19+
AddDelegate addFunc = dll.GetDelegateFromFuncName<AddDelegate>("Add");
20+
Console.WriteLine("Calling add(1, 2): " + addFunc(1, 2) + "\n");
21+
22+
dll.Close();
23+
}
24+
```
25+
26+
## Contributions
27+
DLLFromMemory.Net is based on Memory Module.net 0.2
28+
Copyright (C) 2012 - 2018 by Andreas Kanzler
29+
https://github.com/Scavanger/MemoryModule.net
30+
31+
Memory Module.net is based on Memory DLL loading code Version 0.0.4
32+
Copyright (C) 2004 - 2015 by Joachim Bauch
33+
https://github.com/fancycode/MemoryModule
34+
35+
## License
36+
DLLFromMemory.Net is available under the [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/).

Sample.cs

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
using System;
2+
using System.Runtime.InteropServices;
3+
[assembly: System.Reflection.AssemblyTitle("Sample")]
4+
[assembly: System.Reflection.AssemblyProduct("Sample")]
5+
[assembly: System.Reflection.AssemblyVersion("1.0.0.0")]
6+
[assembly: System.Reflection.AssemblyFileVersion("1.0.0.0")]
7+
[assembly: ComVisible(false)]
8+
9+
static class Sample
10+
{
11+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] delegate int AddDelegate(int a, int b);
12+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] delegate void CallbackDelegate(int number);
13+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] delegate void CallCallbackDelegate(CallbackDelegate callback, int number);
14+
15+
static int Main(string[] args)
16+
{
17+
Console.WriteLine("Process is " + (DLLFromMemory.Is64BitProcess ? "64" : "32") + "bit\n");
18+
19+
DLLFromMemory dll = new DLLFromMemory(GetSampleDLLBytes());
20+
21+
AddDelegate addFunc = dll.GetDelegateFromFuncName<AddDelegate>("Add");
22+
Console.WriteLine("Calling add(1, 2): " + addFunc(1, 2) + "\n");
23+
24+
CallCallbackDelegate callCallbackFunc = dll.GetDelegateFromFuncName<CallCallbackDelegate>("CallCallback");
25+
Console.WriteLine("Calling callCallback(TestCallback, 777)...");
26+
callCallbackFunc(TestCallback, 777);
27+
Console.WriteLine("Done!\n");
28+
29+
dll.Close();
30+
return 0;
31+
}
32+
33+
static void TestCallback(int number)
34+
{
35+
Console.WriteLine(" In callback with number: " + number);
36+
}
37+
38+
static byte[] GetSampleDLLBytes()
39+
{
40+
byte[] buf;
41+
System.IO.Compression.DeflateStream ds;
42+
if (DLLFromMemory.Is64BitProcess)
43+
{
44+
buf = new byte[2048]; //decompress the 409 bytes below into this 2048 byte buffer (original dll file size)
45+
ds = new System.IO.Compression.DeflateStream(new System.IO.MemoryStream(new byte[409] {
46+
0xE5, 0x94, 0x33, 0xBC, 0xDE, 0x50, 0x1C, 0x40, 0x4F, 0xF0, 0xAC, 0x6A, 0xEF, 0xBF, 0x9C, 0x6A, 0xB7, 0x4B, 0x6D, 0x5B, 0x4F, 0xC1, 0x7D, 0xFC, 0x14, 0xD4, 0x5C, 0x6A, 0xAE, 0xC5, 0xBE, 0xD6,
47+
0x9C, 0x6A, 0x77, 0x9F, 0x8A, 0x7D, 0x29, 0xB7, 0xF2, 0x73, 0xED, 0x6E, 0x39, 0xBF, 0x9C, 0x5C, 0xE6, 0x3A, 0x77, 0xEE, 0xAA, 0xC3, 0x18, 0x80, 0x09, 0x7C, 0xF8, 0x00, 0x17, 0xC9, 0x31, 0x81,
48+
0x5F, 0x73, 0x07, 0xA8, 0xED, 0x79, 0xB9, 0x96, 0xB3, 0x15, 0x0F, 0x7B, 0x5D, 0xD4, 0xE6, 0x3C, 0xEC, 0xB5, 0xA4, 0xAD, 0x3D, 0x90, 0x94, 0x9F, 0x6C, 0xF5, 0xAD, 0xB8, 0x38, 0x56, 0x22, 0x91,
49+
0x0C, 0xC5, 0x56, 0xE2, 0xAF, 0x49, 0x48, 0x7B, 0x42, 0xA6, 0xCC, 0x5F, 0x2C, 0xF1, 0xA4, 0xAB, 0x06, 0xD5, 0xD4, 0x54, 0xF6, 0x25, 0xC7, 0xEC, 0xD8, 0xFB, 0xC7, 0x75, 0x35, 0x87, 0x0F, 0x14,
50+
0xF4, 0xC3, 0x35, 0x07, 0x6A, 0xB3, 0xE1, 0x9C, 0x7C, 0x38, 0x2F, 0x1B, 0x2E, 0x6A, 0x77, 0xDA, 0x32, 0xE5, 0xFC, 0x80, 0x05, 0x53, 0xC1, 0xDD, 0xA9, 0xD3, 0xE5, 0xF5, 0xB4, 0x06, 0xF2, 0x3C,
51+
0xA7, 0xB7, 0x54, 0xE9, 0xD5, 0xA0, 0x93, 0x13, 0x90, 0x2E, 0x40, 0x5A, 0x60, 0xBB, 0x46, 0x3E, 0xAE, 0x43, 0x49, 0xAE, 0x42, 0x31, 0x64, 0x08, 0x60, 0x02, 0x80, 0x41, 0xB3, 0x96, 0xAB, 0x48,
52+
0x31, 0xF8, 0x36, 0x9D, 0x8B, 0x4E, 0x10, 0x58, 0xC9, 0x1F, 0x20, 0x30, 0x86, 0xFF, 0xC7, 0xA0, 0x50, 0xAD, 0x0F, 0x81, 0xFE, 0xC5, 0xB9, 0x01, 0xE6, 0x37, 0x5D, 0x36, 0x0F, 0xF2, 0x5D, 0x2B,
53+
0xB4, 0xA0, 0x8B, 0x06, 0x48, 0xBE, 0x5E, 0x29, 0x5F, 0x30, 0x21, 0xFB, 0x44, 0x80, 0x08, 0x73, 0xC0, 0xEC, 0x7A, 0xFD, 0xC1, 0x67, 0xCC, 0xD8, 0x77, 0x75, 0xDF, 0xBD, 0x19, 0x1F, 0x9E, 0x16,
54+
0xD2, 0x17, 0x35, 0xE0, 0x3A, 0x11, 0x20, 0xB2, 0x14, 0xEF, 0x4C, 0x1D, 0x68, 0x04, 0x8E, 0x4B, 0xDA, 0xD2, 0x2F, 0xCB, 0xAA, 0x81, 0x1E, 0xC0, 0x5B, 0x49, 0x5B, 0xFA, 0xFD, 0xEF, 0x37, 0x0B,
55+
0x68, 0x80, 0x9E, 0xB7, 0x4D, 0x20, 0x25, 0xB0, 0x5E, 0x80, 0x2E, 0xD0, 0x25, 0xED, 0x6E, 0x81, 0xFD, 0x02, 0xA0, 0xB1, 0x44, 0x05, 0xE1, 0x94, 0x39, 0x73, 0x06, 0xB9, 0xB1, 0x18, 0x13, 0x5D,
56+
0x97, 0xC9, 0x56, 0x2C, 0x96, 0xD1, 0xB6, 0x9C, 0x4E, 0x80, 0x45, 0x8B, 0xA7, 0x2C, 0x36, 0xFC, 0x77, 0x6B, 0x67, 0x4F, 0xDD, 0x3E, 0xF5, 0xA8, 0xB9, 0xBB, 0x2A, 0x3C, 0x75, 0x72, 0x8F, 0x06,
57+
0x4C, 0x19, 0x57, 0xEF, 0xAA, 0xB5, 0xF5, 0x73, 0x37, 0x2C, 0xF0, 0x93, 0x1D, 0xCA, 0x09, 0x83, 0xFA, 0x74, 0x2B, 0xD3, 0xFC, 0x64, 0x7C, 0xAE, 0x8A, 0x27, 0xFD, 0x0D, 0x03, 0x13, 0x2A, 0xAC,
58+
0xCF, 0xB7, 0x5D, 0xBF, 0x48, 0xC5, 0x94, 0x15, 0xA8, 0xFA, 0x51, 0x23, 0xEC, 0xF6, 0x62, 0xEE, 0xA0, 0x94, 0x6B, 0x93, 0x43, 0x23, 0xDA, 0x7C, 0x04
59+
}, false), System.IO.Compression.CompressionMode.Decompress, false);
60+
}
61+
else
62+
{
63+
buf = new byte[2048]; //decompress the 417 bytes below into this 2048 byte buffer (original dll file size)
64+
ds = new System.IO.Compression.DeflateStream(new System.IO.MemoryStream(new byte[417] {
65+
0xED, 0xD4, 0x03, 0x8C, 0x1C, 0x01, 0x14, 0x80, 0xE1, 0x7F, 0x70, 0x36, 0x62, 0xF4, 0x5D, 0x52, 0xDB, 0x0A, 0x6A, 0xDB, 0x3A, 0x8D, 0x8E, 0xAB, 0xCC, 0xD6, 0x6E, 0x50, 0x2B, 0xD6, 0xC5, 0x4E,
66+
0x6A, 0xDB, 0x46, 0x9C, 0x5A, 0xB1, 0x59, 0x1B, 0x83, 0xDA, 0x6D, 0x50, 0x7C, 0x0F, 0x63, 0x63, 0xC4, 0xD4, 0xF5, 0x68, 0x80, 0x0E, 0xBC, 0x7C, 0x09, 0x7B, 0xF0, 0xF5, 0xE6, 0xDB, 0xCE, 0x00,
67+
0xB9, 0x8D, 0xF6, 0xE5, 0xB2, 0x23, 0xE3, 0x62, 0xC9, 0x1E, 0x65, 0xF8, 0xC5, 0x92, 0xF1, 0x35, 0xB5, 0x49, 0x49, 0xB8, 0xF1, 0x6A, 0xD7, 0x88, 0x8A, 0x65, 0xC4, 0x62, 0xF1, 0xE9, 0x62, 0x3A,
68+
0xE2, 0xCE, 0x88, 0x49, 0x6D, 0x4C, 0xFA, 0x8F, 0x1A, 0x27, 0xD1, 0xB8, 0xED, 0xB4, 0xCD, 0xC9, 0xC9, 0x6C, 0x8C, 0x6F, 0x58, 0xE4, 0xC5, 0xAD, 0xBC, 0x9C, 0xF5, 0x6B, 0xC2, 0x72, 0xA7, 0xCF,
69+
0x58, 0x93, 0xEB, 0x0D, 0x87, 0x07, 0xC3, 0x91, 0xDE, 0x70, 0x6C, 0xAD, 0x55, 0xF3, 0x66, 0x39, 0x5F, 0x30, 0x7A, 0x00, 0x0C, 0x57, 0x54, 0xF2, 0xEF, 0x0D, 0x2C, 0x23, 0x70, 0x07, 0xB5, 0x24,
70+
0x4B, 0xC9, 0x06, 0x15, 0xBF, 0x00, 0xC9, 0x07, 0xDE, 0x94, 0x80, 0x37, 0x96, 0xEF, 0x2F, 0x4B, 0x41, 0x01, 0xDE, 0x0D, 0x69, 0x0F, 0xE8, 0x78, 0x34, 0x7A, 0x2B, 0x90, 0xEF, 0xE5, 0xBB, 0xA1,
71+
0x3F, 0xE8, 0x2D, 0x30, 0x85, 0x1F, 0x20, 0xD0, 0x9D, 0xDF, 0xA7, 0xED, 0x74, 0x67, 0xF6, 0x74, 0xA0, 0x39, 0x10, 0x5E, 0x0B, 0x3A, 0x1F, 0x10, 0xA8, 0x6C, 0xEB, 0xDA, 0xC6, 0x74, 0x03, 0xF2,
72+
0x15, 0x40, 0x82, 0xF5, 0x52, 0xF9, 0x40, 0x6F, 0x2F, 0xFF, 0xFB, 0x97, 0xAC, 0xEA, 0xDF, 0x58, 0xD7, 0xFA, 0x37, 0x4E, 0x3F, 0x7E, 0xC1, 0xF7, 0x72, 0x7A, 0xE3, 0xF4, 0x97, 0xE3, 0x1B, 0xA7,
73+
0x4F, 0x09, 0x66, 0xEC, 0x51, 0x80, 0x63, 0xD9, 0xFC, 0xF7, 0xF7, 0x0A, 0xFF, 0x99, 0x2A, 0x50, 0x0E, 0x34, 0x08, 0x34, 0xA4, 0x7E, 0xB8, 0x2C, 0x1B, 0x28, 0x06, 0x9E, 0x09, 0x3C, 0x4B, 0xFD,
74+
0xFC, 0xF6, 0xF3, 0x05, 0x14, 0x40, 0x0D, 0xAA, 0x46, 0x20, 0x21, 0x30, 0x5B, 0x82, 0xDF, 0x66, 0x3E, 0x2C, 0x17, 0x58, 0x2D, 0x00, 0x0A, 0xE3, 0x9D, 0xE4, 0xF4, 0xFE, 0xC3, 0x87, 0xB7, 0xB5,
75+
0x23, 0x11, 0xFA, 0xD8, 0x36, 0xFD, 0x8C, 0x48, 0xE4, 0x4D, 0x99, 0x86, 0x55, 0x0F, 0x30, 0x76, 0x5C, 0xFF, 0x71, 0x37, 0xEE, 0x2F, 0xD9, 0x3A, 0xB7, 0xA0, 0x45, 0xBF, 0x65, 0x1B, 0x9F, 0x1F,
76+
0x6A, 0x77, 0xF9, 0x49, 0xA5, 0x02, 0xF4, 0xEF, 0x59, 0x6A, 0x3B, 0x33, 0x4B, 0x47, 0xCC, 0x19, 0xED, 0xC6, 0xEB, 0x1C, 0x6B, 0x7A, 0xB2, 0xF4, 0xF5, 0x5E, 0x06, 0xBA, 0xF1, 0xE8, 0x08, 0x27,
77+
0x1A, 0x77, 0xE7, 0xB4, 0x89, 0x39, 0xD3, 0x4B, 0x83, 0x7D, 0x97, 0x8E, 0x75, 0x22, 0x8E, 0x91, 0x74, 0x4A, 0x3B, 0x75, 0x34, 0x6B, 0xDF, 0xCE, 0x6D, 0x9B, 0xB0, 0x4D, 0x7C, 0x0A, 0xFF, 0xB6, 0x57
78+
}, false), System.IO.Compression.CompressionMode.Decompress, false);
79+
}
80+
ds.Read(buf, 0, buf.Length);
81+
ds.Dispose();
82+
return buf;
83+
}
84+
}

Sample.csproj

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
4+
<PropertyGroup>
5+
<Configuration Condition="'$(Configuration)'==''">Debug</Configuration>
6+
<Platform Condition="'$(Platform)'==''">x64</Platform>
7+
<ProjectGuid>{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}</ProjectGuid>
8+
<OutputType>Exe</OutputType>
9+
<RootNamespace>Sample</RootNamespace>
10+
<AssemblyName>Sample</AssemblyName>
11+
<FileAlignment>512</FileAlignment>
12+
<Install>false</Install>
13+
<UpdateEnabled>false</UpdateEnabled>
14+
<MapFileExtensions>true</MapFileExtensions>
15+
<ApplicationRevision>0</ApplicationRevision>
16+
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
17+
<IsWebBootstrapper>false</IsWebBootstrapper>
18+
<UseApplicationTrust>false</UseApplicationTrust>
19+
<BootstrapperEnabled>false</BootstrapperEnabled>
20+
<WarningLevel>4</WarningLevel>
21+
<UseVSHostingProcess>false</UseVSHostingProcess>
22+
</PropertyGroup>
23+
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
24+
<OutputPath>Debug\45_32bit\</OutputPath>
25+
<PlatformTarget>x86</PlatformTarget>
26+
</PropertyGroup>
27+
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
28+
<OutputPath>Debug\45_64bit\</OutputPath>
29+
<PlatformTarget>x64</PlatformTarget>
30+
</PropertyGroup>
31+
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
32+
<OutputPath>Debug\45_AnyCPU\</OutputPath>
33+
<PlatformTarget>AnyCPU</PlatformTarget>
34+
<Prefer32Bit>false</Prefer32Bit>
35+
</PropertyGroup>
36+
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release35|x86'">
37+
<OutputPath>Release\35_32bit\</OutputPath>
38+
<PlatformTarget>x86</PlatformTarget>
39+
</PropertyGroup>
40+
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release35|x64'">
41+
<OutputPath>Release\35_64bit\</OutputPath>
42+
<PlatformTarget>x64</PlatformTarget>
43+
</PropertyGroup>
44+
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release35|AnyCPU'">
45+
<OutputPath>Release\35_AnyCPU\</OutputPath>
46+
<PlatformTarget>AnyCPU</PlatformTarget>
47+
<Prefer32Bit>false</Prefer32Bit>
48+
</PropertyGroup>
49+
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release45|x86'">
50+
<OutputPath>Release\45_32bit\</OutputPath>
51+
<PlatformTarget>x86</PlatformTarget>
52+
</PropertyGroup>
53+
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release45|x64'">
54+
<OutputPath>Release\45_64bit\</OutputPath>
55+
<PlatformTarget>x64</PlatformTarget>
56+
</PropertyGroup>
57+
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release45|AnyCPU'">
58+
<OutputPath>Release\45_AnyCPU\</OutputPath>
59+
<PlatformTarget>AnyCPU</PlatformTarget>
60+
<Prefer32Bit>false</Prefer32Bit>
61+
</PropertyGroup>
62+
<PropertyGroup Condition="'$(Configuration)'=='Debug'">
63+
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
64+
<DebugSymbols>true</DebugSymbols>
65+
<DebugType>full</DebugType>
66+
<Optimize>false</Optimize>
67+
<IntermediateOutputPath>$(OutputPath)</IntermediateOutputPath>
68+
<DefineConstants>DEBUG;TRACE;DOTNET45;TARGET$(PlatformTarget)</DefineConstants>
69+
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
70+
</PropertyGroup>
71+
<PropertyGroup Condition="'$(Configuration)'=='Release35' or '$(Configuration)'=='Release45'">
72+
<TargetFrameworkVersion Condition="'$(Configuration)'=='Release35'">v3.5</TargetFrameworkVersion>
73+
<TargetFrameworkVersion Condition="'$(Configuration)'=='Release45'">v4.5</TargetFrameworkVersion>
74+
<IntermediateOutputPath>$(OutputPath)</IntermediateOutputPath>
75+
<DebugType>pdbonly</DebugType>
76+
<Optimize>true</Optimize>
77+
<DefineConstants Condition="'$(TargetFrameworkVersion)'=='v3.5'">DOTNET35;TARGET$(PlatformTarget)</DefineConstants>
78+
<DefineConstants Condition="'$(TargetFrameworkVersion)'=='v4.5'">DOTNET45;TARGET$(PlatformTarget)</DefineConstants>
79+
</PropertyGroup>
80+
<ItemGroup>
81+
<Reference Include="System" />
82+
<Reference Include="System.Core" />
83+
<Compile Include="DLLFromMemory.cs" />
84+
<Compile Include="Sample.cs" />
85+
</ItemGroup>
86+
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
87+
</Project>

Sample.sln

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio 2013
4+
VisualStudioVersion = 12.0.31101.0
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}") = "Sample", "Sample.csproj", "{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}"
7+
EndProject
8+
Global
9+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
10+
Debug|Any CPU = Debug|Any CPU
11+
Debug|x64 = Debug|x64
12+
Debug|x86 = Debug|x86
13+
Release35|Any CPU = Release35|Any CPU
14+
Release35|x64 = Release35|x64
15+
Release35|x86 = Release35|x86
16+
Release45|Any CPU = Release45|Any CPU
17+
Release45|x64 = Release45|x64
18+
Release45|x86 = Release45|x86
19+
EndGlobalSection
20+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
21+
{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
22+
{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}.Debug|Any CPU.Build.0 = Debug|Any CPU
23+
{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}.Debug|x64.ActiveCfg = Debug|x64
24+
{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}.Debug|x64.Build.0 = Debug|x64
25+
{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}.Debug|x86.ActiveCfg = Debug|x86
26+
{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}.Debug|x86.Build.0 = Debug|x86
27+
{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}.Release35|Any CPU.ActiveCfg = Release35|Any CPU
28+
{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}.Release35|Any CPU.Build.0 = Release35|Any CPU
29+
{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}.Release35|x64.ActiveCfg = Release35|x64
30+
{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}.Release35|x64.Build.0 = Release35|x64
31+
{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}.Release35|x86.ActiveCfg = Release35|x86
32+
{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}.Release35|x86.Build.0 = Release35|x86
33+
{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}.Release45|Any CPU.ActiveCfg = Release45|Any CPU
34+
{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}.Release45|Any CPU.Build.0 = Release45|Any CPU
35+
{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}.Release45|x64.ActiveCfg = Release45|x64
36+
{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}.Release45|x64.Build.0 = Release45|x64
37+
{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}.Release45|x86.ActiveCfg = Release45|x86
38+
{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}.Release45|x86.Build.0 = Release45|x86
39+
EndGlobalSection
40+
GlobalSection(SolutionProperties) = preSolution
41+
HideSolutionNode = FALSE
42+
EndGlobalSection
43+
EndGlobal

TestDLL/.gitignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
Debug/
2+
Release/
3+
.vs/
4+
*.sdf
5+
*.opensdf
6+
*.user
7+
*.suo
8+
*.aps
9+
*.ipch

TestDLL/TestDLL.sln

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio 2013
4+
VisualStudioVersion = 12.0.31101.0
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}") = "TestDLL", "TestDLL.vcxproj", "{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}"
7+
EndProject
8+
Global
9+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
10+
Debug|Win32 = Debug|Win32
11+
Debug|x64 = Debug|x64
12+
Release|Win32 = Release|Win32
13+
Release|x64 = Release|x64
14+
EndGlobalSection
15+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
16+
{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}.Debug|Win32.ActiveCfg = Debug|Win32
17+
{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}.Debug|Win32.Build.0 = Debug|Win32
18+
{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}.Debug|x64.ActiveCfg = Debug|x64
19+
{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}.Debug|x64.Build.0 = Debug|x64
20+
{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}.Release|Win32.ActiveCfg = Release|Win32
21+
{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}.Release|Win32.Build.0 = Release|Win32
22+
{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}.Release|x64.ActiveCfg = Release|x64
23+
{FFFFFFFF-FFFF-4FFF-FFFF-FFFFFFFFFFFF}.Release|x64.Build.0 = Release|x64
24+
EndGlobalSection
25+
GlobalSection(SolutionProperties) = preSolution
26+
HideSolutionNode = FALSE
27+
EndGlobalSection
28+
EndGlobal

0 commit comments

Comments
 (0)