none
开发的MFC release程序不能够在其他电脑上运行,为何? RRS feed

  • 问题

  • VC++6.0开发了一个能够操作数据库的软件,在自己电脑上可以运行,但是在其他人的电脑上不能够运行,点击启动,不到几秒钟直接提示发出异常信息,问是否发送错误信息.

    自己的电脑包括私人和公司,但是就是不能够在别人任何电脑上使用,是不是我的电脑安装了visual studio的原因呀,但是我使用静态库编译方式,应该可以直接在其他电脑也能够用的上呀!

    我举了一个例子,不带数据库的MFC给别人,别人又可以了.

    请问这是什么问题呀!

    谢谢浏览过此贴的人和即将回答该贴的朋友!

    2011年5月4日 15:11

答案

  • 发生异常说明你的运行环境中有问题。你可以在这个环境中用dependency工具看一下缺少哪些DLL。这个问题比较麻烦。也有可能是由于软件的冲突。


    麻烦把正确答案设为解答。
    2011年5月5日 10:08
    版主
  • DAO是有错误返回代码的,你看看CDaoException中的错误代码是什么就可以知道原因了
    0xBAADF00D
    2011年5月6日 1:22
    版主

全部回复

  • 发生异常说明你的运行环境中有问题。你可以在这个环境中用dependency工具看一下缺少哪些DLL。这个问题比较麻烦。也有可能是由于软件的冲突。


    麻烦把正确答案设为解答。
    2011年5月5日 10:08
    版主
  • 经过反复的测试,异常信息是处在下面代码处:

     

    /CString sPath;
     GetModuleFileName(NULL, sPath.GetBufferSetLength(MAX_PATH + 1), MAX_PATH);
     sPath.ReleaseBuffer();
     sPath = sPath.Left (sPath.ReverseFind('\\'));
     sPath += "\\数据库.mdb";// 打开数据源
     try
     {
      m_pDB->Open(sPath);
     }
     catch(CDaoException* e)
     {
      AfxMessageBox("error 1");
      AfxMessageBox(e->m_pErrorInfo->m_strDescription, MB_ICONEXCLAMATION);
      delete m_pDB;
      e->Delete();
      return;
     }

    黑色加粗部分为终止程序处.

    在有一部分电脑出现的异常是内存某地址不能够读.

    这样的地方出错怎么处理了,问题是为什么打不开数据源呢?


    hello ...
    2011年5月5日 15:46
  • DAO是有错误返回代码的,你看看CDaoException中的错误代码是什么就可以知道原因了
    0xBAADF00D
    2011年5月6日 1:22
    版主
  • DAO是有错误返回代码的,你看看CDaoException中的错误代码是什么就可以知道原因了
    0xBAADF00D
    异常爆出来的是那种向用户提示是否发送错误,或者直接报出内存某个地址不能够读的错误,如果是在我自己开发的电脑上,如果我删掉数据库,那么异常就会报出数据库不能找到...

    hello ...
    2011年5月8日 16:54
  • 数据库位置,或者是否有权限访问?
    麻烦把正确答案设为解答。
    2011年5月11日 3:02
    版主
  • 数据库位置,或者是否有权限访问?
    麻烦把正确答案设为解答。


    如果数据库位置不存在,那么异常会报出数据库文件不存在[或者找不到],但是放在别人电脑上不会这样提示,会直接报出异常错误是否发送那样的对话框,还有一部分电脑直接报出某个内存地址不能够read.

    我不知道是不是其他电脑上都要装了visual studio才会好,因为现在只有我自己两台电脑可以,然而这两台都装了visual studio工具.


    hello ...
    2011年5月11日 12:05