我自己写了个服务,需要访问access库,当在debug状态时,连接没有问题,但是一旦当做服务服务启动时就不能联接,我可以跟踪到当执行pConnection->Open语句时,一直没有返回任何值,程序陷在这里。为什么?相关源码如下:
      
       CString strOpen = "DSN=AddressBook;UID=;PWD=";
try
{
hr = pConnection->Open((const char *)strOpen,"","",-1);
char a[4];
ZeroMemory(a,4);
ltoa(hr,(char*)&a,10);
Link::LOG(a);
return hr == S_OK;
}
catch(_com_error *e)
{
Link::LOG(e->ErrorMessage());
return FALSE;
}

解决方案 »

  1.   

    今天还在调试服务下的数据库联接问题,楼住讲讲在服务状态启动时怎么跟踪调试,在debug下我可以用printf输出跟踪信息,但是从服务里启动你是怎么跟踪的,介绍一下?
      

  2.   

    我也遇到过,问题在CoInitialize——你使用CoInitializeEx代替它就OK了。
    看看MSDN吧
    原因我也没搞清楚
      

  3.   

    也许楼上的说得对,你可以试一下我以前用ado也没有用到这些问题,但问题是为什么在debug和服务状态下不一样呢
      

  4.   

    CoInitializeEx需要包含什么投文件,用法似乎也有讲究!!
      

  5.   

    我将“objbase.h”和ole32.dll分别加入,但是编译出现错误“error C2065: 'CoInitializeEx' : undeclared identifier”,为何??
      

  6.   

    bluwindhrt(风一飞)朋友,具体怎样用的请明示!!