求教:我有一个VC程序.可执行文件目录中有一个数据库文件,程序中数据库链接方式为  
hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
 if(SUCCEEDED(hr))
  {
  hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=timenote.mdb","","",adModeUnknown);///连接数据库
 
直接运行该执行文件,正常,但如果将执行文件加到注册表RUN中,键值为该执行文件所在目录:
D:\I386\lkr\timetable\Release\timetable.exe 随windows启动自启动,结果报找不到数据库.请指教.

解决方案 »

  1.   

    那就不放run里面呗~改成“服务”,自动启动的服务,等待其它服务都启动完毕再启动……
      

  2.   

    Data Source=timenote.mdb
    要寫絕對路徑
      

  3.   

    已经解决,应该写绝对路径,因为自启动时,当前路径为用户的路径.即C:\Documents and Settings\XXXXXX.而不是执行程序所在的路径.所以找不到数据库.在链接数据库前用
    ::GetModuleFileName(NULL,sz,sizeof(sz);来获取当前程序的路径,此路径作为数据库的路径.
    相关语句如下
    char sz[MAX_PATH];
    ::GetModuleFileName(NULL,sz,sizeof(sz);
    CString path=sz;
    path.replace("\\文件名.exe","")
    path.replace("\\","/");
    path+="/timenote.mdb";