我想在服务器端访问数据库,比较习惯用MFC DAO,但是应该如何加入对MFC的支持?

解决方案 »

  1.   

    1.在需要使用MFC的CPP里面,加入#include <afxwin.h>         // MFC core and standard components
    等MFC的头文件;那么,代码里面就可以使用MFC了;2.把"project Setting"的"General"的"no using MFC",改为另外2项中的任一项一切就OK了
      

  2.   

    Add MFC Support to an ATL Project 看看这个文档http://support.microsoft.com/default.aspx?scid=kb;EN-US;173974
      

  3.   

    If you are including afxwin.h, you may comment out the windows.h include
    Q173974 - HOWTO: Add MFC Support to an ATL Project
      

  4.   

    to:OddLoop(今天就自习~~考研) 
    如果有编译错误,就把你的CPP里面的 #include <windows.h>注释。
      

  5.   

    我只能和你说这完全没有必要,加入MFC会使NT Service的性能大大降低,ATL本来就是为了生成小巧的COM类设计的,如果你要是用MFC为什么不用MFC来开发NT Service呢?而且ATL本身就可以使用ADO,因为ADO本质上来说还是一些COM对象,那么何必要使用MFC呢?
      

  6.   

    TO: golden_alvin(Alvin)
    你说的真好,我是想在用ATL做的NTService服务程序中访问数据库,这个NTservice程序同时也是个DCOM组件,除了要完成数据库的操作之外,还要完成一些客户端的权限验证以及实现一些其他功能。我考虑过用ADO,并采用包容模型作一些自己封装的接口来完成数据库部分的操作。但是我觉得这样有两个问题,一是如果多个用户同时进行报表请求(报表内容不同),就要在服务器端建立多个Recordset对象,而且无法判断何时应该销毁该对象;二是这样做网络往返太多,客户端效果差。我想最好能把一个CRecordSet对象作为返回值,但是不知道该怎么做……强制转换为(void**)类型可以吗?或者有别的方法?能不能给点建议啊?
      

  7.   

    我觉得你可以考虑使用COM+的事务,这样在客户调用好一个函数之后会自动销毁这个对象,那么你的第一个问题就解决了。你的第二个问题是把一个接口的指针作为返回值对吧,这样你只要直接些就可以了,COM+的运行环境会自动帮你实现接口的列集,散集等一系列工作的,而客户端看到的返回的值对他们来说是透明的