none
程序main函数未执行 RRS feed

  • 问题

  • 32位的程序在64win7系统上执行,任务管理器中可以看到进程名,但内存占用一直不变,程序主界面也出不来。

    转储dmp文件调试后,基本信息如下:

    点击使用 仅限本机 进行调试后,调用堆栈显示如下:

    貌似未执行到exeMain函数中,请问这种是什么问题呢?

    2018年12月6日 4:21

答案

全部回复

  • 你好,

    是不是你的程序隐藏了界面。 可以分享一下可以重现你问题的代码吗? 另外你可以试一下Debug, 看看是那行代码出的问题。

    Best regards,

    Zhanglong


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年12月6日 5:09
    版主
  • 不是每次运行程序都出现这个问题,偶然性比较强。调试环境下没出现过。

    我刚重新看了下转储文件的运行栈,是停留在Application.Run(new UserForm())后的UserForm构造函数中。相关代码片段如下:

    Main()中代码:

    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);

    bool createNew = false;
    EventWaitHandle programStarted = new EventWaitHandle(false, EventResetMode.AutoReset, "EventHandle", out createNew);

    // 如果该命名事件已经存在(存在有前一个运行实例),则发事件通知并退出
    if (!createNew)
    {
        programStarted.Set();
        return;
    }

    Environment.SetEnvironmentVariable("WEBKIT_IGNORE_SSL_ERRORS", "1");//添加此行代码以允许webkitbrowser支持https网站的访问
    Application.Run(new MainForm(programStarted));

    MainForm构造函数代码:

    MainForm : CCSkinMain

    public MainForm(EventWaitHandle programStratedEvent)
    {
                InitializeComponent();

                ......

    }

    2018年12月6日 7:15
  • 你好,

    如果不是每次都有这种情况,我建议你我Main()函数中增加写日志的功能(可以考虑Log4net), 并加上Try Catch 在你的Main 函数中,看看能不能收集到有用的信息。

    Best regards,

    Zhanglong


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年12月7日 1:17
    版主
  • 好,谢谢!
    2018年12月12日 13:47
  • 跟所用UI框架有关,UI框架可能对部分电脑主题不支持,所以出现死循环问题,导致CPU等资源开销过大。
    2019年1月19日 8:50
  • 大胆猜测一下,会不会是你的程序上次没有正确退出,导致进程里该应用程序还存在,而在你重启启动程序时,由于程序里的CreateNew为false了,所以,程序主界面就不会再弹出。
    2019年1月24日 8:09