1。由几个人一起开发一个软件,每人负责一个模块,怎么样把几个人开发的模块集合到一个软件里来。(在VC中,每个人的模块就是一个工程,怎么样把几个工程集合到一个工程)2。为了使我的软件只能被运行一个实例(在运行的时候就不准再运行它一次),在VC中应该怎么样实现?

解决方案 »

  1.   

    我倒!1.将自己写的功能模块封装成类或是dll,提供被调用的接口2.//建一个系统的互斥量,判断这个互斥是否已经建立
      CreateMutex(NULL, FALSE, "Client");
      if(GetLastError()==ERROR_ALREADY_EXISTS)
        OnOK();
      

  2.   

    1、将你改动过或新加的文件添加到他的工程中
    2、调用这个函数,根据它的返回值判断是否已有一个实例在运行
    BOOL CYourApp::FirstInstance()
    {
    CWnd *pWndPrev = NULL, 
    *pWndChild = NULL;
    this->GetRegInfo();
    //根据主窗口类名和主窗口名判断是否已经有实例存在
    if(pWndPrev = CWnd::FindWindow(_T("#32770"), "你的主窗口名")){
    //如果存在就将其激活,并显示出来

    pWndChild = pWndPrev->GetLastActivePopup();
    //如果是最小化就还原窗口
    if(pWndPrev->IsIconic()){
    pWndPrev->ShowWindow(SW_RESTORE);
    }
    //将窗口放到最前
    pWndChild->SetForegroundWindow();

    return FALSE;
    }
    }