iCAx开思工具箱

标题: MFC 开发UG界面 的 问题 [打印本页]

作者: bill-guo    时间: 2009-3-4 20:33
标题: MFC 开发UG界面 的 问题
求助:
     本人 刚入道不久,用过 UG自带的 对话框开发程序,无问题。
最近 跟着一本书 学习 用MFC作对话框,发现一个问题,很恼火!!!!

     程序写好,编译通过,无警告和错误,但是当CTRL+U  调用 时就出问题了:
对话框闪一下,紧接着UG就崩溃了(无任何征兆 就关闭了)。

    我想问问各位前辈们,是否遇到过这种情况,该如何处理???
    我用的书 是 电子工业出版社 出的 《NX二次开发 实例》

   先谢谢了,
作者: ffhi    时间: 2009-3-4 22:33
把你的程序贴出来嘛。
作者: look_tfq    时间: 2009-3-4 22:55
我也遇上了,正在解决中
作者: bill-guo    时间: 2009-3-4 23:23
#include "stdafx.h"
#include "MFCtest1.h"
#include "MFCtest.h"
#include <stdio.h>
#include <uf.h>
#include <uf_ui.h>


CMFCtest *DLG = NULL;


extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
{
    /* Initialize the API environment */
        AFX_MANAGE_STATE(AfxGetStaticModuleState());
    int errorCode = UF_initialize();
       
    if ( 0 == errorCode )
    {
                ////////////////////////////////////////

                DLG = new CMFCtest();
                DLG->Create( IDD_DIALOG1);
                DLG->ShowWindow(TRUE);


                ////////////////////////////////////////
                errorCode = UF_terminate();
        }
}

extern int ufusr_ask_unload( void )
{
    return(UF_UNLOAD_IMMEDIATELY);
}
这是 接口部分的

望高人指点,鄙人对MFC一知半解,谢谢
作者: bill-guo    时间: 2009-3-5 19:17
貌似 找到了 原因:

extern int ufusr_ask_unload( void )
{
    return ( UF_UNLOAD_IMMEDIATELY);
}
改成
extern int ufusr_ask_unload( void )
{
    return ( UF_UNLOAD_UG_TERMINATE);
}
就能避免 UG 崩溃,
但是还是不明白,为什么 当 unload  DLL 后 UG就会 崩溃呢???即使你 关闭了 对话框
作者: MIRRO_LEE    时间: 2009-3-9 10:42
感兴趣的问题~~~
继续关注!
期待有人解释原因!
作者: catry    时间: 2009-3-9 13:48
extern int ufusr_ask_unload( void
{
    return ( UF_UNLOAD_IMMEDIATELY);
}
这个还是改成另一个通过对话框结束的好……
在实用工具里有个unload image什么的,就可以unload掉,方便调试,不然每次你还得关ug才能改程序。

ug崩溃的原因可能是因为你用的是立即卸载,所以对话框show了一下就结束了,而你没有加删除指针的语句,所以导致崩溃的把,这个也不大清楚了,呵呵。
作者: XUSIR98    时间: 2009-3-9 18:11
我就没有看到谁解决过这个的问题
只能象楼上说的用UF_UNLOAD_SEL_DIALOG,然后在实用工具里卸掉他,才能再次编译!
有兴趣的话你可以搜搜深夜摔键盘的帖子,有提到过这个,就是怎样调用MFC的树控件。
作者: tangxu12    时间: 2009-3-9 20:14
https://76880903.qzone.qq.com/in ... rlReportBlankZone.0

看看我写的
作者: cam-yp    时间: 2009-3-10 08:48
使用UF_UNLOAD_IMMEDIATELY的话,UNLOAG IMAGE没有作用

我是用UF_UNLOAD_SEL_DIALOG,再UNLOAG IMAGE,才可以反复的调试
作者: weiminxiaohai    时间: 2009-5-14 20:46
我的更加烦躁,extern DllExport void ufusr( char *parm, int *returnCode, int rlen )这句编译的时候老错误 missing ';' before type 'void',我才学,不知道什么原因,请各位大侠指点下,为谢
作者: weiminxiaohai    时间: 2009-5-14 20:46
我的也是按照书上操作的




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3