c# SetCompatibleTextRenderingDefault 必须在第一个之前调用

2024-06-01

我尝试搜索此异常,但在我的案例中找不到任何解决方案

我使用下面的代码来调用 .NET 应用程序:

        Assembly assem = Assembly.Load(Data);
        MethodInfo method = assem.EntryPoint;           
        var o = Activator.CreateInstance(method.DeclaringType);            
        method.Invoke(o, null);

将被调用的应用程序有一个表单,并且在应用程序的入口点中:

    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false); //Exception
        Application.Run(new Form1());
    }

SetCompatibleTextRenderingDefault必须在第一个之前调用IWin32Window对象在应用程序中创建。

EDIT :

        Assembly a = Assembly.Load(Data);
        MethodInfo method = a.GetType().GetMethod("Start");
        var o = Activator.CreateInstance(method.DeclaringType);            
        method.Invoke(o, null);

您应该创建一个新方法来跳过初始化并通过反射查找Start方法。但是Application.Start会阻塞当前线程。如果您不想启动新的消息泵,则应该尝试使用反射查找 Form 类。


class Program
{
    static void Main(string[] args)
    {
        var path = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
        var filename = Path.Combine(path, "WindowsFormsApplication1.exe");
        var assembly = Assembly.LoadFile(filename);
        var programType = assembly.GetTypes().FirstOrDefault(c => c.Name == "Program"); // <-- if you don't know the full namespace and when it is unique.
        var method = programType.GetMethod("Start", BindingFlags.Public | BindingFlags.Static);
        method.Invoke(null, new object[] { });
    }
}

和加载组件:

static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Start();
    }


    public static void Start()   // <-- must be marked public!
    {
        MessageBox.Show("Start");
        Application.Run(new Form1());
    }
}

这在这里有效!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c# SetCompatibleTextRenderingDefault 必须在第一个之前调用 的相关文章

随机推荐

  • 更新数据库中的项目,而不使用 ContentValues 中设置的所有列

    例如 我有四列 first name last name phone number and picture 我的代码中的某个地方有 ContentValues values new ContentValues values put MyPe
  • 使用“for”循环迭代 C++ Vector

    我是 C 语言的新手 我已经开始使用向量 并且注意到在我看到的所有代码中通过索引迭代向量 for循环总是基于向量的 在 Java 中 我可能会用 ArrayList 做这样的事情 for int i 0 i lt vector size i
  • jqgrid,调用URL带参数为Json返回

    我的 aspx 页面上有以下代码 jQuery listFondos jqGrid url PorMyController LoadGridData datatype json mtype GET colNames col1 col2 et
  • 基本表创建 fpdf

    我找不到使用 fpdf 制作表格并从 mysql 数据库获取数据的合适教程 我只是想知道如何创建一个 我在网上尝试示例时遇到了很多错误 例如 我有 名字 中间名 姓氏 年龄 和 电子邮件 列 如何使用 fpdf 创建表格并回显数据库中的条目
  • libcurl 链接时 ssl 后端 (openssl) 与编译时 ssl 后端不同(无/其他)

    我的系统是macOS 10 13 1 我尝试导入 pycurl 是错误的 ImportError pycurl libcurl link time ssl backend openssl is different from compile
  • 无法在 IE 上运行 Selenium 脚本

    我必须在 IE 10 浏览器上运行 Selenium 测试 为了运行以下脚本 我执行了以下操作 下载IEDriverServer 64位 因为我的机器是64位 here http code google com p selenium dow
  • 如何在VS2010中获取T4来迭代类的属性

    我使用的是 Visual Studio 2010 并且安装了有形的 T4EditorPlusModellingTools 我只是在玩T4 以前从未接触过它 我想做的是查看项目中的一个类 并写出每个属性 谁能给我关于如何构建 tt 文件的绝对
  • 如何使用 React TransitionMotion willEnter()

    Using React Motion 的 TransitionMotion https github com chenglou react motion 我想要为 1 个或多个盒子进出设置动画 当一个盒子进入视图时 它的宽度和高度应该从 0
  • iOS 4.2.1 丢失文件?

    这是我第一次使用最新的 xcode 3 2 5 和新的 iOS 4 2 1 当我在设备上运行应用程序时 我收到以下运行时错误 无法读取 Developer Platforms iPhoneOS platform DeviceSupport
  • 谷歌闭包编译器和jquery

    我将 js 代码复制粘贴到谷歌编译器中 当我将其复制回我的应用程序时 它不起作用 我意识到我的代码需要jquery 所以我将jquery代码和我的代码复制到google编译器中 希望它能轻松解决问题 但它也不起作用 在chrome下 代码有
  • PreferenceActivity更新摘要

    我有一个PreferenceActivity有一个 2 层树PreferenceScreens 类似
  • 使用 webclient 类将文件上传到文件服务器

    目前我有一个应用程序可以从我的网络应用程序接收上传的文件 我现在需要将该文件传输到恰好位于同一网络上的文件服务器 但情况可能并不总是如此 我试图在 C NET 中使用 webclient 类 string filePath C test 5
  • 不同 servlet-api 版本冲突

    我正在使用 Maven 和 Jetty 作为服务器来开发 RestEasy Web 服务 其中一项服务应使用扩展 javax servlet http HttpServletResponseWrapper 的 Filter 问题出在来自 s
  • 以独立于区域设置的方式读取 Excel 文件

    我使用以下代码从各种 Excel 文件读取数据 IMEX 1 to force strings on mixed data HDR NO to process all the available data Locale 1033 is en
  • java中import和class.forName的区别

    import 和 class forName 都会加载类文件 当我在jsp文件中做一个导入mysql数据的例子时 需要通过class forName导入驱动类 当我通过import语句导入jdbc驱动程序时 它无法从tomcat服务器中的m
  • 如何在反应应用程序中重新加载页面(状态)

    我开始学习react js 并在react应用程序中开发了一个简单的石头剪刀布游戏 我发现创建一个重新加载按钮有点困难 因为它当然与具有如下功能的 javascript 按钮不同
  • 将网站数据导入 Adob​​e InDesign

    我希望我们的杂志团队能够将网站数据下载到 Adob e InDesign 可以读取的文件中 然后 他们可以导入 打开文件 进行一些调整 并消除大量重复的体力劳动 他们目前使用复制和粘贴几个小时 经过简短的 Google 搜索后 我注意到 I
  • 如何在谓词中对 FilteredList 结果进行优先级排序/排名?

    我的应用程序包含一个TextField and a ListView The TextField允许用户输入搜索词来过滤内容ListView当他们打字时 过滤过程将匹配每个字段中的多个字段DataItem in the ListView如果
  • Kubernetes,VolumeMount 一个文件,而不是一个目录

    我将使用 K8S 来编排 docker 容器 在 k8s 中 我需要从主机目录复制一个文件 configs nginx cas server conf 到 pod 容器目录 etc nginx nginx conf 但是目前的k8s只允许挂
  • c# SetCompatibleTextRenderingDefault 必须在第一个之前调用

    我尝试搜索此异常 但在我的案例中找不到任何解决方案 我使用下面的代码来调用 NET 应用程序 Assembly assem Assembly Load Data MethodInfo method assem EntryPoint var