[讨论]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
...全文
54 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
没看懂。

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧