示例#1
0
        /// <summary>
        /// 加载程序集加载失败事件
        /// </summary>
        static Program()
        {
            IntPtr hUser32            = GetModuleHandle("user32.dll");
            IntPtr SetProcessDPIAware = GetProcAddress(hUser32, "SetProcessDPIAware");

            if (SetProcessDPIAware != IntPtr.Zero)
            {
                FarProc setProcessDpiAware = (FarProc)Marshal.GetDelegateForFunctionPointer(SetProcessDPIAware, typeof(FarProc));
                setProcessDpiAware();
            }

            AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
        }
示例#2
0
        static void Main()
        {
            // SetProcessDPIAware是Vista以上才有的函数,需兼容XP的话不能直接调用,需按如下所示间接调用
            IntPtr hUser32 = GetModuleHandle("user32.dll");
            IntPtr addrSetProcessDPIAware = GetProcAddress(hUser32, "SetProcessDPIAware");

            if (addrSetProcessDPIAware != IntPtr.Zero)
            {
                FarProc SetProcessDPIAware = (FarProc)Marshal.GetDelegateForFunctionPointer(addrSetProcessDPIAware, typeof(FarProc));
                SetProcessDPIAware();
            }
            // C#的原有代码
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new MainForm());
        }