[讨论]RELEASE版本和DEBUG版本的问题。???

Kingore 2003-09-18 11:30:09
[原问题]:
我在某个DLL中写了个函数:Init(CDatabase* pdb,...)做初始化工作(主要读取一些数据。。。)主要用法是:
CRecordset rs(pdb); //RELEASE版本出错的地方!,说内存只读什么的。。。
CString strsql="select .... from ......";
rs.Open(...);
....
我在EXE工程中,要调用刚才的DLL中的Init(CDatabase* pdb,...)

我调用的时候是声明一个CDatabase m_db;
然后做好数据源连接,Init(&m_db,...);

我之所以这样说(DLL和EXE工程)是因为,我如果在一个EXE工程里的话,不管RELEASE版本和DEBUG版本都没有问题!!!

最后一句话说再说一遍(我觉得我说的有点问题,怕你们误解)

我尝试了在同一个工程里(EXE工程),做完上面所有的步骤。包括数据源连接和CRecordset构建和访问数据库,总之,我在一个EXE工程里面用同样步骤的做法,RELEASE和DEBUG版本都没有问题。

问题得到部分解决,但不晓得原因,欢迎大家踊跃讨论!!!
[原问题的具体讨论参见]:
http://expert.csdn.net/Expert/topic/2272/2272010.xml?temp=.1345484
...全文
7 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
weibo79 2003-09-19
可能跟你的dll的传递参数有关系,也许你的CDatabase指针指向了一个未被分配给程序的内存区域,以才会出现这样的内存只读的错误。或是在调用的时候,付给形参的数据类型跟定义的数据类型不一致,这样也会出现这样的错误。建议楼主还是检查一下程序。
好像release版本编译的程序要比debug版本编译的程序要求更严格一些,出现一些不匹配的情况就会出错。
回复
Kingore 2003-09-18
自己顶一下,各位大哥,有思路也可以提一下,谢谢了。:)
回复
ac669 2003-09-18
学习,关注
回复
philis 2003-09-18
关注。
回复
chenwangqiu003 2003-09-18
我想主要是工程设置或编译设置的问题,以前也遇到过这样的问题然后在设置中捣鼓,就好了
实际上的原因还是不明白,gz
回复
zhonghui 2003-09-18
顶!顶!
回复
wenddy112 2003-09-18
没看懂。
回复
发帖
进程/线程/DLL
创建于2007-09-28

1.5w+

社区成员

VC/MFC 进程/线程/DLL
申请成为版主
帖子事件
创建了帖子
2003-09-18 11:30
社区公告
暂无公告