iCAx开思工具箱

标题: UG中调用模架与标准件出错? [打印本页]

作者: dreamerwj    时间: 2004-8-13 17:21
标题: UG中调用模架与标准件出错?
我用MFC DLL做了一个模架库(数据库连接采用ADO,调用.macro文件),工具栏调用;同时用MFC DLL做了一个标准件库(数据库连接采用ADO,调用.grx文件),菜单调用;在UG界面中先调用其中一个,可以实现,但再点击调用另外一个时,出现错误界面如图。请大家帮忙看一下。
作者: dreamerwj    时间: 2004-8-14 08:10
上面说文件oleinit.cpp有错。以下是我的dll 调用对话框的方式(模架库与标准件库均用此):
CLjDialog *g_pDlgBegin=NULL ; //--------
  
static void do_ugopen_api(void)  
{  
  
  AFX_MANAGE_STATE(AfxGetStaticModuleState());  
   
  CWnd* pWnd = AfxGetMainWnd();  
  if(!g_pDlgBegin)  
  {  
    g_pDlgBegin=new CLjDialog(pWnd);  
    g_pDlgBegin->Create(IDD_DIALOG1);  
  }  
  g_pDlgBegin->ShowWindow(SW_SHOW);  
  
}  
  
extern "C" DllExport void ufsta( char *param, int *returnCode, int rlen )
  
{
  
    int errorCode = UF_initialize();
  
    if ( 0 == errorCode )
  
    {
    do_ugopen_api();  
        errorCode = UF_terminate();
  
    }
  
}
  
extern "C" void ufusr_cleanup(void)
  
{
  AFX_MANAGE_STATE(AfxGetStaticModuleState());  
//  oUninitialize();  
  if(g_pDlgBegin)  
  {  
    g_pDlgBegin->DestroyWindow();  
    delete g_pDlgBegin;  
  }  
}
  
extern "C"  int ufusr_ask_unload( void )
  
{
  
    return( UF_UNLOAD_UG_TERMINATE );
  
}
  
BOOL CLjmjApp::InitInstance()  
{
  // TODO: Add your specialized code here and/or call the base class
  AfxEnableControlContainer(); //Add ActiveX control  
  AfxOleInit();                          //是否和此句有关
  return CWinApp::InitInstance();
}
作者: dreamerwj    时间: 2004-8-14 08:37
问题找到了,去掉函数:
BOOL CLjmjApp:nitInstance()  
{  
  // TODO: Add your specialized code here and/or call the base class  
  AfxEnableControlContainer(); //Add ActiveX control  
  AfxOleInit(); //是否和此句有关  
  return CWinApp:nitInstance();  
}  
中的
  AfxOleInit(); //是否和此句有关  
即可。




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