我要在一个动态连接库中实现ADO,但是不成功。
具体是这样的:1.(in DllMain)
在DLL_PROCESS_ATTACH中:
CoInitialize(NULL);
hr = Conn.CreateInstance ( __uuidof(Connection));
         //......其他略
在DLL_PROCESS_DETACH中:
Conn.Release ();
CoUninitialize();
程序运行到Release ();的时候出错。测试的其他情况包括:
2.1 没有Conn.Release ();这条语句的时候,在应用程序退出的时候报错误.
2.2 不CreateInstance(),则运行正常 (说明是因为释放Conn的时候才出问题)
2.3 同样的代码,写到其他的地方(比如dll的窗口创建/释放的时候),则正确执行,但却不是我所希望的。而在MSDN关于DllMain的说明中,DLL_PROCESS_ATTACH/DLL_PROCESS_DETACH两个入口可能并不处于一个线程中(Note that the thread that receives the DLL_PROCESS_DETACH notification is not necessarily the same thread that received the DLL_PROCESS_ATTACH notification.)。但是我GetCurrentThreadID()得到的却又是一样的。而错误依旧。哪位大哥大姐有经验的帮帮我。分不够再加。

解决方案 »

  1.   

    以动态库的方式封装ADO的操作 < ADO >  动态库封装了ADO的操作,提供打开数据库,关闭数据库,得到数据库指针,装载记录,查找记录,修改记录,删除记录,添加记录,得到记录的关键字段(根据类型)[代码性质] VC完整应用程序代码
    [代码作者] 张连成
    [文件大小] 19K 
    [更新日期] 2003-7-16 19:59:00 
    [下载次数] 512  http://www.vckbase.com/code/viewcode.asp?id=2056
      

  2.   

    http://www.vckbase.com/code/downcode.asp?id=2056