我写了一个较复杂的多线程DLL,debug版运行正常,但release版要报内存错,请教解决办法(50分)

  • 主题发起人 主题发起人 myc++b
  • 开始时间 开始时间
M

myc++b

Unregistered / Unconfirmed
GUEST, unregistred user!
具体内容如下
"0x004238a6"指令引用"0x0105a11c"内存。该内存不能为“written”。
要中止程序,请单击“确定”。
要调试程序,请单击“取消”。
 
我的DLL里有六个类,有消息机制,有四个线程,如果访问了非法内存,我想知道为什么debug不出错而只有release出错,如果用debug版加上cc3260mt.dll就可运行正常,我看了以下help
上面说是cp32mti.lib和cp32mt.lib不一样,cp32mti.lib支持多线程,cp32mt.lib不支持
入果用debug版我看了projectX.bpr.xml中是如下
<LINKER>
<ALLOBJ value="c0d32.obj $(PACKAGES) Memmgr.Lib sysinit.obj $(OBJFILES)"/>
<ALLRES value="$(RESFILES)"/>
<ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cp32mti.lib"/>
而release版就成了
<LINKER>
<ALLOBJ value="c0d32.obj $(PACKAGES) Memmgr.Lib sysinit.obj $(OBJFILES)"/>
<ALLRES value="$(RESFILES)"/>
<ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cp32mt.lib"/>
即不支持多线程了,不知怎样才能在release版中包进cp32mti.lib引入库
可能这个问题需要高手指教才行,多谢各位,最后再说以下debug版运行很稳定,要是解决不了我就
去VC++队伍了
 
什么意思啊,干脆去VC++里头算了,少了你不多吧?
现在谁不支持多线程的?倒是你的话我倒觉得都是多线程了,看不懂了,
 
后退
顶部