Я хочу поместить все сигнатуры функций API Windows, которые я использую в программах, в один класс, такой как WinAPI, и в файл WinAPI.cs, который я включу в свои проекты.Класс будет внутренняя статическая , а методы открытая статическая extern .(Что-то вроде огромного NativeMethods.cs из исходного кода .NET Framework).
Допустим, WinAPI.cs имеет сто сигнатур собственных методов, таких как:
[DllImport("user32.dll")]
internal static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
Если я собираюсь использовать только несколько из них в проекте (даже один или два), если я включу файл WinAPI.cs в свой проект, будет ли окончательный .exe заполнен ненужными объявлениями методов, которые яне используется (остальные 99 или около того)?
Как насчет объявлений собственных структур, если я не буду использовать их в текущем проекте, будут ли они по-прежнему включены в окончательный .exe?
[StructLayout(LayoutKind.Sequential)]
public struct POINT
{
public int X;
public int Y;
}
А как насчет объявлений констант или членов только для чтения, таких как:
public const int WH_JOURNALPLAYBACK = 1;
public static readonly int WM_GETTEXT = 0x0D;