m_pConnection.CreateInstance("ADODB.Connection");//创建Connection对象
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=c:\\db.mdb","","",adModeUnknown);//连接数据库
上面我用的是绝对路径"c:\\db.mdb",我想把数据库放到程序的一层目录里面,想用相对路径即"db.mdb"但是我发现如果再这条语句之前有浏览目录的操作时,相对路径就会改变,请问如何解决?
或者如何得到程序的一层目录?

解决方案 »

  1.   

    楼上说的不大明白,绝对路径太不方便了,把程序拿到别人机器,还得改路径.
    我就想用相对的,这样方便但是调用完dlg,相对路径就变了.55555
      

  2.   

    呵呵,是你还不知道怎么用绝对路径。
    用GetModuleFileName可以取得应该程序所在的路径。然后你知道怎么拼其它相对路径的绝对路径了吧。
      

  3.   

    可以用GetModuleFileName获取你的应用程序的路径。
    接着可以用字符串操作修改你想要的路径
      

  4.   

    多点查找API吧.
    发挥你的想象,组合E文单词.再看MSDN.
    GetModuleFileName
      

  5.   

    能不能给个例子程序,GetModuleFileName如何使用?
      

  6.   

    char sPath[255];
    GetModuleFileName(NULL,sPath,255);
      

  7.   

    按楼上所说sPath得到的是程序的绝对地址,我怎么塞到下面的语句中哪?m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=c:\\db.mdb","","",adModeUnknown);//连接数据库把c:\\db.mdb用sPath替代???
      

  8.   

    char szPath[MAX_PATH] = {0};
    GetModuleFileName(NULL, szPath, MAX_PATH);
    int i;
    for (i=MAX_PATH-1; i>=0; i--)
        if (szPath[i] == '\\')
        {
           szPath[i] = 0;
           break;
        }CString strDbPath;
    strDbPath.Format("%s\\db.mdb", szPath);