qtcpsocket 在release版本中的问题 [问题点数:40分,结帖人wyljz]

Bbs1
本版专家分:35
结帖率 100%
Bbs1
本版专家分:35
Bbs4
本版专家分:1501
Bbs1
本版专家分:35
debug版本release版本问题!
我的程序在debug<em>版本</em>下没有<em>问题</em>,rn但是在<em>release</em><em>版本</em>下会出现访问非法内存的<em>问题</em>?rn大家看看可能是什么原因引起的?
关于RELEASE版本问题????
我现在有一个<em>问题</em>,我的程序是一个对串口进行读写的程序,我开了一个线程,并且循环去读串口数据,但是在DEBUG<em>版本</em>下可以正常运行,但是在RELEASE<em>版本</em>下读串口数据的时候就会出现异常,请问这个是什么原因,我想调试RELEASE<em>版本</em>下的程序,只能写日志吗??还有其他更好的办法吗,如果写日志,我打算在我开的线程里面使用CFile来进行写日志,或者是用fopen来写日志,哪个更好点???
Release和Debug版本问题
我的程序build以后,Debug<em>版本</em>执行没有<em>问题</em>,但是Release<em>版本</em>执行就要出错,导致First-chance exception in Cost.exe (MFC42.DLL): 0xC0000005: Access Violation.我实在不清楚,为什么会这样。你们认为可能会是什么原因呢?
release版本问题
编译<em>release</em><em>版本</em>dll,然后给主程序使用。发现在vc6.0的环境下,在project-》setting中设置好路径直接执行主程序时没有<em>问题</em>。但是在直接双击主程序的exe文件打开主程序时,在使用dll时却出<em>问题</em>了。请碰到过类似<em>问题</em>的兄弟帮忙解决。
release版本崩溃的问题
程序中定义了4个结构体对象,结构体如下:rnstruct TableDesrn char Name[300][80];//名称rn char Unit[300][20];//单位rn int iRegCount;//个数rn BYTE bytValue[60];//数值(字节)rn unsigned char m_bDataType[30]; //是否有符号 1:有符号,0:无符号rn double m_dCoe[30]; //数据系数rn;rnTableDes A,B,C,D;rn然后从TXT点表中读信息,当A有32个信息点,B有29个信息点时程序运行正常,可B增加到31个点时debug<em>版本</em>正常,<em>release</em><em>版本</em>崩溃,提示"0x00000000"指令应用的“0x00000000”内存。该内存不能为“read”rn后来我将B放到对话框初始化中,并将它改为局部变量,debug版和<em>release</em>版都正常,求解原因?rn
debug和release版本问题
我的程序在集成环境下Debug和Release都可以正常运行,rn不通过集成环境启动程序debug<em>版本</em>可以正常运行, <em>release</em><em>版本</em>运行之后进行某种操作会报错,而在集成环境下进行此操作不报错,这是什么原因造成的??rnrn 集成环境:vs2005rn 操作系统:Win xp
RELEASE版本问题
debug<em>版本</em>全部正确rnRELEASE<em>版本</em>有如下错误,请问要加些什么,谢谢rnDDUTIL.CPPrnMain.cpprnLinking...rnBoat.obj : error LNK2001: unresolved external symbol __imp__PlaySoundA@12rnMain.obj : error LNK2001: unresolved external symbol _DirectDrawCreate@12rnMain.obj : error LNK2001: unresolved external symbol __imp__timeGetTime@0rnRelease/Rip.exe : fatal error LNK1120: 3 unresolved externalsrnError executing link.exe.
关于release版本问题
软件编译成debug<em>版本</em>,能正常运行,但编译成<em>release</em><em>版本</em>,就不行,请教各位原因是什么呢,如何做才可以?rn急!!!!!
Release版本程序崩溃问题!!!
Win7下面错误报告如下:rn--------------------------------------------rn[color=#0000FF]<em>问题</em>签名:rn <em>问题</em>事件名称: BEXrn 应用程序名: Solutions.exern 应用程序<em>版本</em>: 2.0.0.1rn 应用程序时间戳: 4c51c721rn 故障模块名称: MSVCR90.dllrn 故障模块<em>版本</em>: 9.0.30729.4926rn 故障模块时间戳: 4a1743c1rn 异常偏移: 0006c955rn 异常代码: c0000417rn 异常数据: 00000000rn OS <em>版本</em>: 6.1.7600.2.0.0.768.2rn 区域设置 ID: 2052rn 其他信息 1: 4bdbrn 其他信息 2: 4bdb5eee252052747aabf43af747dc61rn 其他信息 3: 9699rn 其他信息 4: 96992f4f6df0b33afa045e0127cd9fd3[/color]rnrn联机阅读隐私声明:rn http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0804rn-------------------------------------------------------------rnrn这个报告如何解读啊???不懂啊。。。rnrn一直没有办法定位和跟踪这个错误的发生场景,使用同一个数据进行调试,debug<em>版本</em>没有遇到<em>问题</em>,<em>release</em>运行很多情况下出现崩溃,少数几次运行正常!rnrn两天了,没有查到线索现在,我也要崩溃了。。。。
release发行版本问题
vc2005环境下,<em>release</em><em>版本</em>,开始执行(不调试),运行结果正常,而打开由它生成的.exe运行结果却不一样
急!!Release版本问题
在VC6.0中,DEBUG<em>版本</em>运行正常,而Release<em>版本</em>在编译时出现了以下错误:rnfatal error C1010:unexpected end of file while looking for precompiled header directive.rn请问是怎么回事啊?应该怎么解决??rn非常感谢!!!rn
release版本的奇怪问题???
我遇到这样一个情况,程序突然在<em>release</em><em>版本</em>下出错,XXX访问的内存不能为写,debug<em>版本</em>没事。按照以前经验怀疑是什么地方没给初值。可是经过一个上午调试发现<em>问题</em>出在malloc函数上,分配11624个unsinged char居然出错,后来我把这个类对象的new放在其他类对象的前面就解决了。这是为什么???这样还有个<em>问题</em>对象创建时要用的fclose函数也出错了,只能把它给去掉了。<em>release</em><em>版本</em>到底是怎么回事??
关于RELEASE版本问题???
我现在有一个<em>问题</em>,我的程序是一个对串口进行读写的程序,我开了一个线程,并且循环去读串口数据,但是在DEBUG<em>版本</em>下可以正常运行,但是在RELEASE<em>版本</em>下读串口数据的时候就会出现异常,请问这个是什么原因,我想调试RELEASE<em>版本</em>下的程序,只能写日志吗??还有其他更好的办法吗,如果写日志,我打算在我开的线程里面使用CFile来进行写日志,或者是用fopen来写日志,哪个更好点???
在Release版本下奇怪的问题...
CListCtrl &cThisCtrl = GetListCtrl();rnrnLVITEM item;rn item.mask = LVIF_IMAGE;rn item.iImage = nState; //这里指定新图片在CImageList中的索引rn rn switch(nChannelType)rn rn case 0:rn item.iItem = 0;rn cThisCtrl.SetItem(&item);rn cThisCtrl.SetItemText(0, 1, strState);rn break;rnrn case 1:rn item.iItem = 4;rn cThisCtrl.SetItem(&item);rn cThisCtrl.SetItemText(4, 1, strState); rn break;rnrn case 2:rn item.iItem = 6;rn cThisCtrl.SetItem(&item);rn cThisCtrl.SetItemText(6, 1, strState); rn break;rnrn case 3:rn item.iItem = 2;rn cThisCtrl.SetItem(&item);rn cThisCtrl.SetItemText(2, 1, strState); rn break;rn rnrn函数部分代码如上:rn在Release<em>版本</em>下rn cThisCtrl.SetItem(&item),会根据nState动态改变图标(icon格式),但在Release<em>版本</em>下就不能改变了,如何解决啊
CSocket问题release版本
我在在工作线程里,创建CSocket,用于接受和发送消息,在Debug<em>版本</em>里能够正常运行,而在<em>release</em><em>版本</em>中,就上报错,什么内存不能read啥的???rn我是在Dialog的OnInitDialog()对socket进行初始化的。rn请大侠只招
Release版本问题
程序编完了之后,生成了Realease<em>版本</em>,自己电脑上运行没有<em>问题</em>,,但是换了一台电脑后,执行的时候,与数据库连接的do出错了,这是什么<em>问题</em>????我用的是VC++6.0,,,数据库是MYSQL,,,,
RichEditCtrl的release版本问题
我的richeditctrl里设置了字体带下划线.rnCHARFORMAT cf; rncf.dwEffects = CFE_AUTOCOLOR|CFE_UNDERLINE;rncf.cbSize = sizeof (CHARFORMAT); rnm_MemoryEdit.SetDefaultCharFormat(cf);rn在debug<em>版本</em>下没有<em>问题</em>,但是在<em>release</em>下就不会出现下划线?rnrn另外一个程序rnCHARFORMAT cf; rncf.cbSize = sizeof (CHARFORMAT); rncf.dwMask = CFM_COLOR|CFM_FACE | CFM_SIZE|CFM_CHARSET; rncf.dwEffects&=~CFE_AUTOCOLOR; rncf.bCharSet = GB2312_CHARSET; rnif(wParam == 0)rn cf.crTextColor = RGB(200,0,0); rnelsern cf.crTextColor = RGB(0,200,200);rnsprintf(cf.szFaceName, "system"); rnGetRichEditCtrl().SetWordCharFormat(cf);rn是对下面要输入的字体改变颜色。debug下正常,但是<em>release</em>下有时字体会变大
有关release版本问题
我的程序有一个exe,一个dll我使用VC的<em>release</em><em>版本</em>编译。如果我设置rnC/C++中的Optimizations为Maximize Speed,Debug info为None,则编译的rn程序启动后,调用Dll自动退出。但是如果选择Optimizations为Maximize 为Disable(Debug),Debug info为Program Database,则一切正常。我使用的Dllrn为普通的Dll,不知道是什么原因,请教各位。谢谢回答
ActiveX release 版本问题
写了一个ActiveX控件,debug<em>版本</em>没有<em>问题</em>,但是<em>release</em><em>版本</em>不能运行。<em>release</em><em>版本</em>编译的时候有下面的警告:rn “warning LNK4098: defaultlib 'MSVCRTD' conflicts with use of other libs; use /NODEFAULTLIB:library”rn 还有一堆:rn “warning C4748: /GS can not protect parameters and local variables from local buffer overrun because optimizations are disabled in function”rn 我的ActiveX控件solution里有两个工程,一个编译成静态lib,另外一个编译成动态dll(就是控件主文件)。网上说warning LNK4098是由于混用不同类型的静态链接库造成的,我的理解就是这两个工程由于使用了不同类型的MSVCRTD从而造成冲突。rn 现在的<em>问题</em>在于动态dll工程(控件主文件)依赖静态lib工程太深,静态lib工程改成dll就没法编译出来。rn 有没有什么办法不改变原有的工程编译方式,使得<em>release</em><em>版本</em>能够编译运行??
Release版本问题
选择使用静态dll后,出现警告错误:rnLINK : warning LNK4089: all references to "SHELL32.dll" discarded by /OPT:REFrnrn不知是什么原因?
release 和debug版本问题
debug下编译正常可用,<em>release</em>下编译下不可用,但又没错误提示。不知怎么处理?rn
debug和release版本问题!
我的debug<em>版本</em>能够正常运行,可是在<em>release</em><em>版本</em>下却不能运行,而且还弹出"应用程序错误"窗口提示"0x00000000"指令引用的内存"0x000000000"不能read,我不清楚这个错误在debug下怎么不提示?一般遇到这个错误怎么解决啊?我点击"取消"却不能调试,请赐教!谢谢!
VC6的release版本问题
用VC6 写了一个软件,里面用到了MATLAB 的dll文件,编译出来的<em>release</em><em>版本</em>exe在启动rn的时候会查找这些dll,如果没找到就启动不了><.rn现在我想知道怎么设置VC6让这个<em>release</em> <em>版本</em>exe在启动的时候不查找这些dll只在用户用rn到MATLAB的时候去找?如果找不到就报错但是不退出软件...rn
recv在Release版本下的问题
我有一个程序,其中有个地方使用了Recv函数,rn在Debug<em>版本</em>下正常,但是在Release<em>版本</em>下就不能正常收发数据。rnrn这是怎么回事?请哪位指点一下?
Release版本问题
我编写了一个程序,最终生成了一个debug<em>版本</em>,一个<em>release</em><em>版本</em>。都是用的静态链接库。但在运行的时候debug<em>版本</em>的exe程序运行正常,而<em>release</em><em>版本</em>的报出"没有找到指定文件"的警告,然后才开始正常的运行。请问大侠这个要怎么解决?
QTcpSocket的问题~
请问,外网的QTcpSocket如何与局域网的QSocket连接?
使用Qtcpsocket中的flush()方法后导致release版本运行不稳定问题
如题,使用Qt做的客户端启动后有两个线程,一个是主线程,一个是发送心跳线程,两线程使用同一个全局的Socket;rnSocket每次write()后使用flush()清空缓存使消息马上发送到服务端,否则debug<em>版本</em>会出现心跳不及时发送现象;rn除此之外debug<em>版本</em>比较稳定。现在测试<em>release</em><em>版本</em>时,发现客户端运行一段时间后(半个小时左右,不做任何操作,程序内部会每隔4秒向服务端发送一次心跳)就会出现runtime error,试过很多方法都没有效果,但是发现把每次write()完的flush()操作注释掉以后就比较稳定。请问flush()是否会导致程序不稳定?
release版本
我做好的<em>release</em><em>版本</em>,在别人的机子上打开没有任何反应
qtcpsocket 测试中遇到的问题
[code=C/C++]#include rn#include rn#include rn#include rnusing namespace std;rnrnint main(int argc, char *argv[])rnrn QCoreApplication a(argc, argv);rnrn QTcpSocket client;rn client.connectToHost("222.192.41.132",51756);rn char str[30];rn memset(str,'\0',30);rn client.getChar(str);rn cout<
debug版本release版本
debug<em>版本</em>和<em>release</em><em>版本</em>除了调试信息以外,还有什么不一样吗?rn为什么我的程序在debug<em>版本</em>上可以很好的运行但编译成<em>release</em><em>版本</em>就出现非法操作,rn主要是在存取全局变量的地方?rn有没有人遇到过同样的<em>问题</em>?rn应该注意哪些事项?rnrn注-----我的程序在debug<em>版本</em>上可以很好的运行
Release版本和Debug版本
我在PROJECT->SETTINGS->SETINGS FOR里选择了WIN32 RELEASE并按OK退出,但重新进到SETTINGS对话框,SETINGS FOR里显示的还是WIN32 DEBUG,这是为何?谢谢!
QTcpSocket
不知道为什么在include 的时候引入不了。找不到该文件
debug版本release版本
debug为调试<em>版本</em>,其中包括了出错时能够定位源代码的行,如果源文件已经改变,定位出来会有偏移,而且,在这个<em>版本</em>中编译器不会进行代码优化,并且在程序中能用宏定义_DEBUG来确定当前的<em>版本</em>。另一个为正式<em>版本</em>,程序出错只是进行简单的错误处理,编译器会优化代码,以提高性能。<em>release</em>代码更小,执行更快,编译更严格,更慢,当然就没有了调试信息。debug跟<em>release</em>在初始化变量时所做的操作是不同
debug版本release版本
运行代码 #include&lt;iostream&gt; using namespace std; static void prindAddress(int a, int b, int c){ cout&lt;&lt;"a"&lt;&lt; a &lt;&lt;" "...
VC中DEBUG 和RELEASE版本问题
为什么我的程序,在DEBUG的运行程序运行是没<em>问题</em>的,但是在RELEASE的运行程序运行直接就有<em>问题</em>(程序自动消失\结束).请各位帮我解决下这个<em>问题</em>,这个<em>问题</em>是什么原因导致的,如何解决,谢谢
网络编程中,release debug版本问题
今天出了一个很纳闷的<em>问题</em>,经过几天的努力,我编写的网络程序在DEBUG<em>版本</em>调试成功,却在RELEASE<em>版本</em>出了<em>问题</em>,ret=connect(socket1,(LPSOCKADDR)&local,sizeof(local));如果服务器没有启动,客户端在debug<em>版本</em>用这条语句返回值为ret=-1,表示没有连接服务器成功,而在<em>release</em><em>版本</em>却不一样,表示却服务器连接成功,这条语句的返回值为ret=0,但实际上服务器并没有启动.为什么会有不同的结果呢?
VC6.0中Release版本出错
我在程序中定义了CWnd* DateEditBoxFoucsed = NULL变量,在Debug模式下面一切正常,但是在Release模式下,DateEditBoxFoucsed 变量赋值不成功,不稳定,有时候赋上去的值会莫名其妙丢失,那位高手指点迷津,不胜感激!
postmessage在release版本中出错
在一个对话框中有个TreeCtrl,点击CheckBox之后,需要根据点击CheckBox之后的状态来做一些设置。rnrn#define WM_SET_STEPS WM_USER+3rnrn 在OnClickStep函数中rn rn this->postmessage(WM_SET_STEPS);rnrn之所以要向自己发消息,是因为点击CheckBox选择或者取消选择TreeCtrl的某个项目时,本身也是个消息响应的过程,rn所以postmessage等这个消息相应完了再执行WM_SET_STEPS的消息响应函数OnSetSteps()rnrn但是这样做在Debug<em>版本</em>中没<em>问题</em>,到Release<em>版本</em>就出错,而且只要postmessage就出错,即使OnsetSteps()函数体全部rn注释,还是出错。rnrn而且第一次点击时没<em>问题</em>,第二次点击时才出错。rnrn小弟新手,请帮帮忙!rnrn
有关Debug版本和Release版本问题
请问如何生成Release<em>版本</em>。rn我在Build->Setting里面看到了有两个:Debug 和 Releasern在Build->set active ...里面选Debug的时候生成了Debug,但选Release的时候报错:rnCannot Open Precompiled Head file:'Release/My project name.pch':No such file or derectory.rn请问这是问什么啊?rn
关于release版本和Debug 版本问题 终结
==============================================rn这 <em>release</em> 和 debug 2个<em>版本</em>的代码出现的<em>问题</em>rn我个人觉得有必要整理一下,更好的帮助朋友们rn以下内容有 以前朋友的回帖,也有网上找到的rn还有一少部分我个人的经验。rn希望大家不要水掉这个帖子,把自己的经验多分享rn多添加一些,谢谢。rn==============================================rn这个可能更全面:调试Release<em>版本</em>应用程序 rnrn引言rn如果在您的开发过程中遇到了常见的错误,或许您的Release<em>版本</em>不能正常运行而Debug<em>版本</em>运行无误,那么我推荐您阅读本文:因为并非如您想象的那样,Release<em>版本</em>可以保证您的应用程序可以象Debug<em>版本</em>一样运行。rnrn如果您在开发阶段完成之后或者在开发进行一段时间之内从来没有进行过Release<em>版本</em>测试,然而当您测试的时候却发现<em>问题</em>,那么请看我们的调试规则1:rnrn规则1: 经常性对开发软件进行Debug和Release<em>版本</em>的常规测试.rnrn测试Release<em>版本</em>的时间间隔越长,排除<em>问题</em>的难度越大,至少对Release<em>版本</em>进行每周1次的测试,可以使您在紧凑的开发周期内节省潜在的排故时间.rnrn不要随意删除Release<em>版本</em>需要的代码rn这点看起来似乎再明显不过,但却是开发人员无意中经常犯的错误,原因在于编译器编译Release<em>版本</em>时候会主动排除在代码中存在的宏,例如ASSERT和TRACE在Release<em>版本</em>会自动排除,这样导致的<em>问题</em>是您在这些宏当中运行的代码也被随之删除,这是非常危险的事情J,例如:rnrn ASSERT(m_ImageList.Create(MAKEINTRESOURCE(IDB_IMAGES), 16, 1, RGB(255,255,255)));rnrn这样的代码在Debug模式不会出错,图像列表也自动创建了,然而在Release<em>版本</em>呢?后继使用m_ImageList对象只会造成程序的Crash!,因此ASSERT宏中尽量使用逻辑运算符作为验证。rnrn规则 2: 不要将代码放置在仅在某种编译选项中执行的地方,对于使用_DEBUG等编译选项宏内部的代码必须不影响整个程序的使用.rnrn规则 3: 不要使用规则2作为评判标准来删除ASSERT宏,ASSERT宏是个有用的工具,但容易使用错误.rnrn使Debug编译模式接近Release模式rn如果您的Release<em>版本</em>存在的<em>问题</em>是由代码被编译器自动排除造成的,那么通过这个方法您的<em>问题</em>可能会重现.rnrn一些<em>问题</em>的产生可能是由于不同编译选项之间预定义符号造成的,因此您可以更改编译模式下的预定义符号,从而使您的Debug模式接近Release模式,观察错误是否产生,更改编译预定义符号方法如下:rnrnAlt-F7打开项目设置,在C++/C 页面,选择 "General "类别,更改 "_DEBUG "符号为 "NDEBUG ". rn在C++/C 页面, 选择 "Preprocessor "类别,添加预定义符号 "_DEBUG "到 "Undefined Symbols "栏. rn使用 "Rebuild All "重新编译rn如果通过上面设置,您在Release编译模式下面的<em>问题</em>在Debug模式下重现,那么请您依据以下步骤对您的代码进行修改: rnrn查找ASSERT排除其中的所有重要执行语句,或者将ASSERT修改为VERIFY. rn检查 "#ifdef _DEBUG " 内所有代码,排除Release模式使用的代码. rn查找TRACE 排除其中的所有重要执行语句. TRACE和ASSERT一样,仅在Debug模式下编译.rn如果通过上面修改更正了您在Debug模式下的<em>问题</em>,那么您可以重新编译Release模式,非常有可能您可以解决先前存在的<em>问题</em>!.rnrn错误的假定造成编译模式错误rn您是否经常性的假定您的变量或者对象被初试化成某个指定的值(可能0)?您是否假定你所有关联到的资源在应用程序中都存在?这些也是Debug和Release模式下不同<em>问题</em>产生的原因. rnrn规则 4: 除非您在代码中对变量进行初始化,否则不能作出如上假定. 包括全局变量,自动变量,申请对象和new对象.rnrn这种情况还常常发生在内存顺序的<em>问题</em>,记得原来使用结构体的时候为了使用方便,比较两个结构体对象使用memcmp,在Debug<em>版本</em>工作正常,而Release<em>版本</em>计算出错误的解,看来的确不能进行错误的假定!rnrn规则 5: 确保删除资源的所有引用都被删除,例如resource.h中的定义.rnrn软件开发中,不同编译<em>版本</em>对变量和内存的初始化是不同的. 如果您假定变量初始化为0,那么在Win9x系统的Release模式下,会出现异常现象。因此对所有变量,内存显式清0是较为安全的做法. rnrn如果您引用了已经被删除的资源,您的Debug<em>版本</em>可以正常工作,但是Release<em>版本</em>可能会crash.rnrn您是否相信编译器? rn编译器警告级别和编译噪音有着相当大的关系.rnrn通过提高编译器警告级别可增加程序隐藏<em>问题</em>暴露的机会.通常设置警告级别在 "Level 3 "或者 "Level 4 ".编译并解决所有警告,这是发布Release<em>版本</em>应用程序的一个很好的建议.这能暴露会使您的应用程序出现<em>问题</em>的很多初始化<em>问题</em>和其它潜在的错误. rnrn规则 6: 开始项目之前先将编译警告级别设置在 "Level 3 " 或者 "Level 4 " ,登记代码之前确保消灭所有警告!.rnrn总结报告rn编译模式下的调试rn曾经不止一次的听到一些VC开发者说Release模式下面不能进行调试,幸运的是:通过相应设置,可以在Release模式进行调试,因此那只不过是一个以讹传讹的荒谬说法而已. rnrn规则 7: 当前面所有的方法都无效的时候,在Release模式下面进行调试.rnrnRelease模式可以进行调试,第一步是打开符号表: rnrnAlt-F7打开项目设置,在C++/C 页面,选择 "General "类,修改Debug Info setting 为 "Program Database ". rn在 "Link " 页面,选择 "Generate Debug Info ". rn"Rebuild All "rn这些设置将允许您在Release模式下保留符号表,您也可以同时考虑以下设置: rnrn调试Release<em>版本</em>应用程序,您可以关闭优化选项. rn如果在Release模式下面不能设置断点,添加指令 "__asm int 3 " 可以是您的应用程序在改行停止(确定在发布应用程序时候排除这些代码).rn在Release模式进行调试的几个限制. rnrn最大的<em>问题</em>在于您不能跟踪到MFC函数内部,原因在于Release<em>版本</em>的MFC动态链接库不包含调试信息和符号表. rn同上,想要调试调用的dll,您必须给它们全部加上调试信息和符号表.rn编译器生成了错误的代码?rn或许有的时候您会发现VC++编译器生成了’<em>问题</em>代码’,然而坦率的讲,人们通常抱怨的太早.您可以在Release模式下面关闭优化选项来进行测试. rnrn如果这个操作解决了您的<em>问题</em>,或许您的编码习惯存在<em>问题</em>. 信不信由你, 极其可能在您的编码中存在模棱两可的求解或者看起来似乎正确,某些条件下也是正确的情况. 举个例子,下面的代码在Debug模式似乎一切’正常’,而在Release模式下面却会出错! rnrn#include rnrnint* func1()rnrnint retval = 5;rnreturn &retval;rnrnrnint main(int argc, char* argv[])rnrnprintf( "%d\n ", *func1());rnreturn 0;rnrn我相信大多数程序员尤其是初学者容易遇到此类情况的.rnrn规则 8: 如果关闭Release模式的优化选项可以使您的应用程序运行正常,而打开优化选项则出现<em>问题</em>的化,原因多半在于您的不良编码习惯造成的. 这意味着必须仔细检查您的代码,清理出那些错误的假设,悬空指针等等. 等同的这告诉您,在Debug模式和关闭优化选项的Release模式下您的应用程序工作正常全是因为系统隐含的运气,您必须着手更正存在隐患的代码,否则在日后可能会造成巨大的损失.rnrn规则 9: 如果您已经彻底检查了您的代码,并且没有发现<em>问题</em>,那么您最好逐个打开优化选项将产生错误的原因限制在某个范围之内. rnrnBTW- 以上<em>问题</em>代码由C++编译器自动检出. 如果您已经遵循 规则 6 您或许在前面环节中已经解决了这些<em>问题</em>.rnrn凭我的开发经验,编译器极少会产生错误的代码(当然要注意接口程序边界对齐的<em>问题</em>).通常在使用模板类时候VC6编译器或许会产生断言ASSERT错误,这种情况您只需更新补丁即可解决.rnrn最后的思考rn在日常编码中只需稍微增加一点严格的检测,便能有效的避免新的Debug -v- Release模式<em>问题</em>的产生,以下是我的一些经验.rnrn1. 取出(check out)需要修改的代码.rnrn2. 修改代码,排除所有警告,编译Debug和Release<em>版本</em>. rnrn3. 详细测试新代码,即单步调试新代码段之后进入工作代码,确保代码无误. rnrn4. 更正所有<em>问题</em>. rnrn5. 确认无误之后将新代码登记入库(check in). rnrn6. 对登记入库的代码进行全新的编译,确保新登记代码与其它代码融合. rnrn7. 重新详细测试代码. rnrn8. 更正新<em>问题</em>(或许可以发现登记入库代码存在的<em>问题</em>)rnrn严格按照以上步骤,您在设计开发过程中即可解决大量<em>问题</em>,避免在最后发布应用程序时候产生新的难以定位的<em>问题</em>. rnrn后记rn本文是在我的开发历程中遇到Release<em>版本</em>应用程序发布,产生错误的时候苦苦求索得到的一些经验,原文来自于codeproject,经过本人润色,改写成为适合国内开发者的文章,希望能对大家有用,谢谢! rnrn=========================rnWin7 系统,也许是用了 Visual Studio 2010 写了个网络程序。 结果Debug模式工作正常,而Release模式出现了<em>问题</em>。rnrn在Release模式下,无法连接服务端。rnrn经过几番检查,最后发现, Debug模式下,Win7 的防火墙是不管你的,而在Release模式下, Win7 自带的防火墙是不让访问的rnrn结果造成了这个<em>问题</em>。希望大家多给出经验,。rnrn在这里谢谢大家了。
[讨论]RELEASE版本和DEBUG版本问题。???
[原<em>问题</em>]:rn我在某个DLL中写了个函数:Init(CDatabase* pdb,...)做初始化工作(主要读取一些数据。。。)主要用法是:rnCRecordset rs(pdb); //RELEASE<em>版本</em>出错的地方!,说内存只读什么的。。。rnCString strsql="select .... from ......";rnrs.Open(...);rn....rn我在EXE工程中,要调用刚才的DLL中的Init(CDatabase* pdb,...)rnrn我调用的时候是声明一个CDatabase m_db;rn然后做好数据源连接,Init(&m_db,...);rnrn我之所以这样说(DLL和EXE工程)是因为,我如果在一个EXE工程里的话,不管RELEASE<em>版本</em>和DEBUG<em>版本</em>都没有<em>问题</em>!!!rnrn最后一句话说再说一遍(我觉得我说的有点<em>问题</em>,怕你们误解)rnrn我尝试了在同一个工程里(EXE工程),做完上面所有的步骤。包括数据源连接和CRecordset构建和访问数据库,总之,我在一个EXE工程里面用同样步骤的做法,RELEASE和DEBUG<em>版本</em>都没有<em>问题</em>。rnrn<em>问题</em>得到部分解决,但不晓得原因,欢迎大家踊跃讨论!!!rn[原<em>问题</em>的具体讨论参见]:rnhttp://expert.csdn.net/Expert/topic/2272/2272010.xml?temp=.1345484
关于release版本和Debug 版本问题
我写了个程序,为什么在Debug<em>版本</em>下没<em>问题</em>,在<em>release</em><em>版本</em>下会出现<em>问题</em>。请问应该是什么<em>问题</em>啊???
VC6.0编译Debug版本和Release版本问题
想把VC6.0编译出来的程序用在没装VC6.0的电脑上,然后baidu看到大家说要把Debug<em>版本</em>改威Release<em>版本</em>,然后编译就可以了,但是我Debug<em>版本</em>编译没<em>问题</em>,设置成Release<em>版本</em>就出现一个错误:rn\Program Files\Microsoft Visual Studio\MyProjects\tese1\tese1Dlg.cpp(64) : fatal error C1001: INTERNAL COMPILER ERRORrn (compiler file 'E:\8168\vc98\p2\src\P2\main.c', line 494)rn Please choose the Technical Support command on the Visual C++rn Help menu, or open the Technical Support help file for more informationrnError executing cl.exe.rn这是我什么都没添加,就新建了一个mfc程序用<em>release</em><em>版本</em>编译出现得<em>问题</em>,请问怎样修改这个错误???
Debug版本调用Release版本问题
我自己编写的exe程序为Debug<em>版本</em>,别人写的动态库为Release<em>版本</em>。别人的动态库类型为MFC扩展动态库。当我用debug<em>版本</em>调用Release<em>版本</em>时,经常出现内存访问错误,光标停留在7C92120E int 3 这一行rn[img=c:\\11.jpg][/img]rn[img=C:\\2.jpg][/img]rn请问各位网友,这是怎么回事呢?如果解决该<em>问题</em>rn还有我不想使用Release调试,因为在Release下,BChecker就不能检测出内存泄漏来了?rn
关于release和debug版本问题
我在程序中使用了一个CArray arry数据结构,在debug<em>版本</em>下运行正常,但改为<em>release</em><em>版本</em>后一执行到arry.Add(...)的语句就会出错,这是什么原因?请教了!
关于debug和release版本问题
请问debug<em>版本</em>和<em>release</em><em>版本</em>有什么区别,怎样控制生成debug<em>版本</em>或者是<em>release</em><em>版本</em>???谢谢!
关于Release版本发布的问题,
我使用的是vs2008 sp1<em>版本</em> 用Release编译程序 编译的参数的md 断点符号也关了,不知道为什么还是要依赖rn'Microsoft.VC90.DebugCRT' rn[code=XML]rn rn rn rn rn rn rn rn rn rn rn[/code]rn这个<em>问题</em>困扰了我很多很多天,谢谢大家了!
关于发布release版本问题
我写的程序编译了一个<em>release</em><em>版本</em>的,在<em>release</em>文件夹中直接点击.exe可以运行rn可是我把那个可执行文件复制到其他文件夹然后把关联的库放到一起点击就会提示:rn无法定位程序输入点 *** 于动态库。rn我都已经把那些库都放到这个文件夹了,我感觉是程序在<em>release</em>时调用了其他程序带的Qt库,可是我如何能知道Qt程序<em>release</em>时到底用的是哪里的库呢
SNMP程序 release版本问题
我的程序很奇怪,在VC编译下,debug<em>版本</em>没有<em>问题</em>。但是<em>release</em><em>版本</em>总是在第二次接受数据的时候,发生崩溃,不知道为什么?rnrnCSnmp::CSnmp()rnrn nMajorVersion=new unsigned long;rn nMinorVersion=new unsigned long;rn nLevel=new unsigned long;rn nTranslateMode=new unsigned long;rn nRetransmitMode=new unsigned long;rn if(SnmpStartup(nMajorVersion,nMinorVersion,nLevel,nTranslateMode,rn nRetransmitMode)!=SNMPAPI_SUCCESS)rn rn AfxMessageBox("initilization failure");rn rn if(SnmpSetTranslateMode(SNMPAPI_UNTRANSLATED_V2) != SNMPAPI_SUCCESS)rn AfxMessageBox("SetTranslateMode failure");rn if(SnmpSetRetransmitMode(SNMPAPI_ON) != SNMPAPI_SUCCESS)rn AfxMessageBox("SetRetransmitMode failure");rn sessionID=FALSE;rnrnrnCSnmp::~CSnmp()rnrn if(nRetransmitMode!=NULL)rn delete nRetransmitMode;rn if(nTranslateMode!=NULL)rn delete nTranslateMode;rn if(nLevel!=NULL)rn delete nLevel;rn if(nMinorVersion!=NULL)rn delete nMinorVersion;rn if(nMajorVersion!=NULL)rn delete nMajorVersion;rn if(session!=NULL)rn SnmpClose(session);rn SnmpCleanup();rnrnrnCSnmp::CreateSession(HWND hWnd,UINT wMsg)rnrn if((session=SnmpCreateSession(hWnd,wMsg,NULL,NULL))==SNMPAPI_FAILURE)rn AfxMessageBox("CreateSession failure");rnrnrnCSnmp::CreateVbl(LPCSTR name,smiLPVALUE pvalue)rnrn smiOID pOid;rn if(SnmpStrToOid(name,&pOid)==SNMPAPI_FAILURE)rn rn AfxMessageBox("CreateVbl failure");rn rn m_hvbl=SnmpCreateVbl(session,&pOid,pvalue);rn if(m_hvbl==SNMPAPI_FAILURE)rn rn AfxMessageBox("CreateVbl failure");rn rn if(SnmpFreeDescriptor(SNMP_SYNTAX_OID,(smiLPOPAQUE)&pOid) != SNMPAPI_SUCCESS) rn AfxMessageBox("freedescriptor failure"); rnrnrnCSnmp::SetVbl(LPCSTR name)rnrn smiOID pOid;rn if(SnmpStrToOid(name,&pOid)==SNMPAPI_FAILURE)rn AfxMessageBox("SetVbl failure--oid");rn //dwErr=SnmpGetLastError(session);rn rn if(SnmpSetVb(m_hvbl,0,&pOid,NULL)==SNMPAPI_FAILURE)rn AfxMessageBox("SetVbl failure");rn //dwErr=SnmpGetLastError(session);rn rn if(SnmpFreeDescriptor(SNMP_SYNTAX_OID,(smiLPOPAQUE)&pOid) != SNMPAPI_SUCCESS) rn AfxMessageBox("freedescriptor failure"); rnrnrnrnCSnmp::CreatePdu(smiINT PDU_type,smiINT32 request_id,rn smiINT error_status,smiINT error_index)rnrn m_hpdu=SnmpCreatePdu(session,PDU_type,request_id,error_status,error_index,m_hvbl);rn if(m_hpdu==SNMPAPI_FAILURE)rn rn AfxMessageBox("CreatePdu failure");rn rn else if (error_status > 0)rn rn AfxMessageBox("Error: error_status=%d, error_index=%d\n",error_status, error_index);rn rnrnrnCSnmp::Send(LPCSTR address,const char * community)rnrn // oldMemState.Checkpoint();rn HSNMP_ENTITY hAgent;rn if((hAgent=SnmpStrToEntity(session,address))==SNMPAPI_FAILURE)rn AfxMessageBox("SendMsg failure--entity");rn smiOCTETS contextName;rn contextName.ptr=(unsigned char *)community;rn contextName.len=lstrlen(community);rn HSNMP_CONTEXT hView;rn if((hView=SnmpStrToContext(session,&contextName))==SNMPAPI_FAILURE)rn AfxMessageBox("SendMsg failure--context");rn if(SnmpSendMsg(session,NULL,hAgent,hView,m_hpdu)==SNMPAPI_FAILURE)rn rn AfxMessageBox("SendMsg failure");rn //dwErr=SnmpGetLastError(session);rn CString str;rn str.Format("%d",SnmpGetLastError(session));rn AfxMessageBox(str);rn rn SnmpFreeDescriptor(SNMP_SYNTAX_OCTETS,(smiLPOPAQUE)&contextName);rn if(m_hpdu!=NULL)rn SnmpFreePdu(m_hpdu);rn if(m_hvbl!=NULL)rn SnmpFreeVbl(m_hvbl);rn if(hAgent!=NULL)rn SnmpFreeEntity(hAgent);rn if(hView!=NULL)rn SnmpFreeContext(hView);rnrnrnrnCSnmp::Receive(LPTSTR *name,smiLPVALUE *value)rn rn HSNMP_ENTITY srcEntity; rn HSNMP_ENTITY dstEntity; rn HSNMP_CONTEXT context;rn HSNMP_PDU pPdu;rn smiLPINT PDU_type=new smiINT; rn smiLPINT32 request_id=new smiINT32;rn smiLPINT error_status=new smiINT;rn smiLPINT error_index=new smiINT;rn HSNMP_VBL varbindlist;rn smiLPOID pOid = new smiOID;rn if(SnmpRecvMsg(session,&srcEntity,&dstEntity,&context,&pPdu)!=SNMPAPI_SUCCESS)rn AfxMessageBox("receive failure--recv");rn if(SnmpGetPduData(pPdu,PDU_type,request_id,error_status,error_index,&varbindlist)!=SNMPAPI_SUCCESS)rn rn AfxMessageBox("receive failure--getpdu");rn CString str;rn str.Format("%d",SnmpGetLastError(NULL));rn AfxMessageBox(str);rn rn if((nCount=SnmpCountVbl(varbindlist))==SNMPAPI_FAILURE)rn AfxMessageBox("Count Vbl Error");rn for(int i=1;i,SnmpGetLastError(NULL));rn AfxMessageBox(str);rn rn SnmpFreeEntity(srcEntity);rn SnmpFreeEntity(dstEntity);rn SnmpFreeContext(context);rn SnmpFreePdu(pPdu);rn SnmpFreeVbl(varbindlist);rn SnmpFreeDescriptor(SNMP_SYNTAX_OID,(smiLPOPAQUE)&pOid);rn delete PDU_type; rn delete request_id;rn delete error_status;rn delete error_index;rnrnrn
很头疼的Release版本问题
我遇到一个很头疼的<em>问题</em>rnrntypedef enum TYPErnrn ENUM_LESS,rn ENUM_LARGER,rn ENUM_ENQUErnTYPE;rnrntypedef std::string rsString;rnrnstatic TYPE GetType( rsString value )rnrn if( "=" == value )rn return ENUM_ENQUE;rn *** if( ">" == value) rn return ENUM_LARGER;rn if( "" == temp) rn return ENUM_LARGER;rn if( " == temp )rn return ENUM_LESS;rnrnrn搞了好久找不到原因, 不知道哪位朋友知道答案给我说哈,还有就是在<em>release</em>下改变优化选项的话,也是可以的。rn
Release版本程序的奇怪问题
在学习OpenGL~~写了一个小程序~~编译出Release<em>版本</em>后直接在VS2005下能全部正确显示~~rnrn但将把Release程序拿出来独立运行之后~~就会显示不正确,不是少渲染了几个面就是运动路径出错。求教怎么解决这个<em>问题</em>???
release版本ado的使用问题
数据库连接没有<em>问题</em>,只是在执行存储过程crash了,debug下是可以执行成功的
release和debug版本的消息发送问题
<em>问题</em>是这样的。我想要实现在程序的不同窗口之间发送消息。我通过SendMessage(hWnd,WM_XXX,0,0);rn其中hWnd是目标窗口的句柄,通过目标窗口中的this->GetSafeHand()得到的,预先赋给想要发送消息的窗口。rnrn现在在debug<em>版本</em>中没有一点<em>问题</em>,消息能正确发送和接收。但在<em>release</em><em>版本</em>中却一到调用SendMessage这个函数时,程序就没有响应了。<em>问题</em>应该在这个函数上,因为当我屏蔽调改消息的响应函数的函数体,程序还是会没有响应,当屏蔽掉SendMessage时,程序就运行正常了。rnrn大家是否也曾遇到过这个<em>问题</em>?望大家帮帮忙,给我指点指点,谢谢!
关于程序release版本问题
现在的程序是用vs2005作为开发环境的(winform),<em>release</em><em>版本</em>下如果通过编译器来启动,程序没<em>问题</em>;可如果直接点击生成的exe文件,<em>release</em><em>版本</em>的就会出<em>问题</em>,点击几下窗体就突然没了;可用debug<em>版本</em>的直接运行也没<em>问题</em>,如何处理这种情况啊?谢谢各位了.
编Release版本出现的问题
编一个工程的Release<em>版本</em>rnrn工程属性改成:在共享 DLL 中使用 MFC,不会有<em>问题</em>!rnrn但改成:在静态库中使用 MFCrn就会报错:rn[code=C/C++]正在链接...rnLINK : warning LNK4075: 忽略“/INCREMENTAL”(由于“/OPT:ICF”规范)rnnafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 libcpmt.lib(newop.obj) 中定义rnnafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已经在 LIBCMT.lib(delete.obj) 中定义rnRelease/SQL Tools.exe : fatal error LNK1169: 找到一个或多个多重定义的符号[/code]rnrn我必须改成“在静态库中使用 MFC”不然在别的机子运行不起来rn所以,请问怎么解决这个<em>问题</em>???
VS2008 Release版本 数据获取问题
<em>问题</em>是这样的:rn程序代码:.h文件rnCString lv_data;rnrncpp文件:rn使用了一个EDIT控件rn实现了这样一个功能:rnGetDlgItem(IDC_EDIT1)->GetWindowTextW(lv_data);rnrn<em>问题</em>如下:rn在debug<em>版本</em>中,lv_data的值是正确的。但是在Release<em>版本</em>中,lv_data变成了“错误指针”请问这是怎么回事。
VC6的release版本问题2
上一个<em>问题</em>我没说详细:rn我软件里面对MATLAB的环境设置:rnrnVC中调用Matlab引擎的设置:rn 1、ToolsOptionsDirectoriesInclude Files中添加:matlab安装目录\extern\include;rn ToolsOptionsDirectoriesLibrary Files中添加:matlab安装目录\EXTERN\LIB\WIN32\MICROSOFT\MSVC70;和<em>版本</em>有关rn 2、ProjectSettingsLinkObject/Library modules中添加:libeng.lib libmx.librnrn编译出来的<em>release</em><em>版本</em>exe在启动的时候会查找 “libeng.dll”,如果没找到就启动不了> <.rn现在我想知道怎么设置VC6让这个<em>release</em> <em>版本</em>exe在启动的时候不查找这些dll只在用户用rn到MATLAB的时候去找?如果找不到就报错但是不退出软件... rnrn试了下动态链接这个“libeng.dll”,发现如果不去掉环境设置里面的第二步,那么软件还是在用静态链接,去掉第二步后就提示所有和MATLAB引擎相关的命令 是unresolved externals:rnLinking...rnMainFrm.obj : error LNK2001: unresolved external symbol _engOutputBufferrnMainFrm.obj : error LNK2001: unresolved external symbol _engEvalStringrnMainFrm.obj : error LNK2001: unresolved external symbol _engClosernMainFrm.obj : error LNK2001: unresolved external symbol _engOpenrnMainFrm.obj : error LNK2001: unresolved external symbol _engSetVisiblernDebug/GETdVG_1.exe : fatal error LNK1120: 5 unresolved externalsrnrn总结一下,就是程序不变,还是调用MATLAB引擎,只是将启动程序时载入libeng.dll改成用户触发时载入。rn3x~~
关于Release版本出错的问题....
DEBUG下没有任何<em>问题</em>,在Release<em>版本</em>下调试状态下执行也没有<em>问题</em>,但到了Release<em>版本</em>下直接运行,关闭的时侯出现一个异常,为XXX指令引用了内存0x00000010,该内存不能为"written",有谁知道怎么解决的,不吝赐教...........
关于Debug和Release版本问题
我的程序在Debug下运行没错,在Release<em>版本</em>下运行就有错误,后来发现原因出在我调用了一个我自己写的DLL文件,如果我不调用该DLL文件运行都不会出现<em>问题</em>,每当在运行时要调用该DLL文件的时就会出错(只在Release<em>版本</em>下才会).真不知道什么原因????请高手指教
安装程序在Release版本下的奇怪问题
最近写一个winform程序。需要控制只有一个实例运行,于是简单的使用Mutex来处理。rn代码无非下面几行:rn[STAThread]rnstatic void Main() rnrn bool isFirst = false;rn System.Threading.Mutex mutex = new System.Threading.Mutex(false,"CSS_MUTEX");rn isFirst = mutex.WaitOne(0,false);rn if(isFirst) rn rn Form loginForm = new LoginForm();rn Application.Run(loginForm);rn rn else rn rn //rn rnrnrn调试通过后,本以为ok了,于是用安装向导生成了一个该程序的安装文件。并安装该程序在我的机器上,当然是用Release<em>版本</em>来生成的。安装后发现无法限制只运行一个实例。很奇怪的是在debug<em>版本</em>没有这个<em>问题</em>出现。rn不知谁有相关经验指教、指教, 谢谢!!rnvs2003 windowsXP .net1.1rnrnrn
求救!!!Release版本下的奇怪问题
我写了一个图象匹配程序,界面是原图像和匹配后的图象比较。在DEBUG下可以正常打开原图像,按匹配按钮后,也可以正常显示匹配到的图象。但是在Release下,在按下匹配图象按钮后,却什么也不出现,这时需要鼠标先点击一下显示匹配图象的区域,在用鼠标点击一下水平的滚动条才能显示匹配图象。rn查了一下网上关于Debug和Release的说法,一般来说都觉得是自定义消息必须加入WPARAM和LPARAM两个参数,但是我觉得我程序还不是这个<em>问题</em>。rnrn求救高手!
有关Release版本问题?请教!
1、我在Visual Studio 6.0建一VC的EXE工程后,在Build->Configurations对话框中把Win32 Release删除了,现在我想要生成Release版,我怎样才能得到初始的Release版的Settings?rn2、因为在在Build->Configurations对话框里Add一个Configuration时,Copy settings from的下拉列表框中只有Win32 Debug了,我怎样才能顺利生成Win32 Release<em>版本</em>的程序?rn谢谢了!
mfc生成Release版本问题
在Debug<em>版本</em>下运行没<em>问题</em>,但生成Release<em>版本</em>时出现不能包含头文件的<em>问题</em>:rnCannot open include filernrn麻烦各们大侠指点迷津!
紧急求助Release版本问题
最近在使用VC生成Release<em>版本</em>时,发现我在CMyProApp类里定义的全局变量,在其所有使用到的地方都没有执行,:rn我在CMyProApp类里定义了:int g_Language=0;rn在其他类里使用该变量时,先 extern int g_Language;rn然后:rn在改类里这样引用rnif(g_Language==0)rnrn LVCOLUMN pcol;rn pcol.pszText = "工程名称";rn m_conProjectList.SetColumn(0,&pcol);rn pcol.pszText = "描述";rn m_conProjectList.SetColumn(1,&pcol);rn pcol.pszText = "创建日期";rn m_conProjectList.SetColumn(2,&pcol);rn pcol.pszText = "位置";rn m_conProjectList.SetColumn(3,&pcol);rnrn主要是为了想做CListCtrl列表视图中列名的中文和英文切换rnrn在Debug<em>版本</em>中没有任何<em>问题</em>,可在Release<em>版本</em>中,这段代码并没有执行,显示的还是英文,rn实在不知道怎么回事!rn请各位大侠指点,在线等,不甚感激!!!!
dll调用中release版本和debug版本问题
我的程序调用一个自己写的dll.debug<em>版本</em>一切都没有<em>问题</em>,但是<em>release</em><em>版本</em>运行就死,发现调用ddl中类成员函数都出<em>问题</em>,是什么<em>问题</em>呀???大家帮帮忙,分不够可以加!
vc6.0中Debug版本问题release版本问题?
vc6.0中Debug<em>版本</em>没<em>问题</em> 而 <em>release</em><em>版本</em>有<em>问题</em>?是为什么 怀疑是编译器的<em>问题</em> 但是装SP6后还是一样?大家给点建议/...
关于QTcpSocket的问题
[code=C/C++]//client.hrn#ifndef CLIENT_Hrn#define CLIENT_Hrnrn#include rn#include rnrnQT_BEGIN_NAMESPACErnclass QDialogButtonBox;rnclass QLabel;rnclass QLineEdit;rnclass QPushButton;rnclass QTcpSocket;rnclass QTextEdit;rnQT_END_NAMESPACErnrn//! [0]rnclass Client : public QDialogrnrn Q_OBJECTrnrnpublic:rn Client(QWidget *parent = 0);rnrn private slots:rn void requestNewFortune();rn void readFortune();rn void displayError(QAbstractSocket::SocketError socketError);rn void enableGetFortuneButton();rnrnprivate:rn QLabel *hostLabel;rn QLabel *portLabel;rn QLineEdit *hostLineEdit;rn QLineEdit *portLineEdit;rn QTextEdit *textEdit;rn QPushButton *getFortuneButton;rn QPushButton *quitButton;rn QDialogButtonBox *buttonBox;rnrn QTcpSocket *tcpSocket;rn QString currentFortune;rn quint16 blockSize;rn#ifdef Q_OS_SYMBIANrn bool isDefaultIapSet;rn#endifrn;rn//! [0]rnrn#endifrnrnrn//client.cpprn#include rn#include rnrn#include "client.h"rnrn#ifdef Q_OS_SYMBIANrn#include "sym_iap_util.h"rn#endifrnrn//! [0]rnClient::Client(QWidget *parent)rn: QDialog(parent)rnrn //! [0]rn hostLabel = new QLabel(tr("&Server name:"));rn portLabel = new QLabel(tr("S&erver port:"));rnrn // find out which IP to connect torn QString ipAddress;rn QList ipAddressesList = QNetworkInterface::allAddresses();rn // use the first non-localhost IPv4 addressrn for (int i = 0; i < ipAddressesList.size(); ++i) rn if (ipAddressesList.at(i) != QHostAddress::LocalHost &&rn ipAddressesList.at(i).toIPv4Address()) rn ipAddress = ipAddressesList.at(i).toString();rn break;rn rn rn // if we did not find one, use IPv4 localhostrn if (ipAddress.isEmpty())rn ipAddress = QHostAddress(QHostAddress::LocalHost).toString();rnrn hostLineEdit = new QLineEdit(ipAddress);rn portLineEdit = new QLineEdit;rn portLineEdit->setValidator(new QIntValidator(1, 65535, this));rnrn hostLabel->setBuddy(hostLineEdit);rn portLabel->setBuddy(portLineEdit);rnrn textEdit = new QTextEdit;rn textEdit->setReadOnly(true);rn textEdit->append("This examples requires that you run the "rn "Fortune Server example as well.");rnrn getFortuneButton = new QPushButton(tr("Get Fortune"));rn getFortuneButton->setDefault(true);rn getFortuneButton->setEnabled(false);rnrn quitButton = new QPushButton(tr("Quit"));rnrn buttonBox = new QDialogButtonBox;rn buttonBox->addButton(getFortuneButton, QDialogButtonBox::ActionRole);rn buttonBox->addButton(quitButton, QDialogButtonBox::RejectRole);rnrn //! [1]rn tcpSocket = new QTcpSocket(this);rn //! [1]rnrn connect(hostLineEdit, SIGNAL(textChanged(QString)),rn this, SLOT(enableGetFortuneButton()));rn connect(portLineEdit, SIGNAL(textChanged(QString)),rn this, SLOT(enableGetFortuneButton()));rn connect(getFortuneButton, SIGNAL(clicked()),rn this, SLOT(requestNewFortune()));rn connect(quitButton, SIGNAL(clicked()), this, SLOT(close()));rn //! [2] //! [3]rn connect(tcpSocket, SIGNAL(readyRead()), this, SLOT(readFortune()));rn //! [2] //! [4]rn connect(tcpSocket, SIGNAL(error(QAbstractSocket::SocketError)),rn //! [3]rn this, SLOT(displayError(QAbstractSocket::SocketError)));rn //! [4]rnrn QGridLayout *mainLayout = new QGridLayout;rn mainLayout->addWidget(hostLabel, 0, 0);rn mainLayout->addWidget(hostLineEdit, 0, 1);rn mainLayout->addWidget(portLabel, 1, 0);rn mainLayout->addWidget(portLineEdit, 1, 1);rn mainLayout->addWidget(textEdit, 2, 0, 3, 2);rn mainLayout->addWidget(buttonBox, 5, 0, 1, 2);rn setLayout(mainLayout);rnrn setWindowTitle(tr("Fortune Client"));rn portLineEdit->setFocus();rnrnrnrn//主要是这个函数改了rnvoid Client::requestNewFortune()rnrn getFortuneButton->setEnabled(false);rn for(int i=0;iabort();rn tcpSocket->connectToHost(hostLineEdit->text(),rn portLineEdit->text().toInt());rn rnrn//! [6]rnrn//! [8]rnvoid Client::readFortune()rnrn //! [9]rn QDataStream in(tcpSocket);rn in.setVersion(QDataStream::Qt_4_0);rnrn if (blockSize == 0) rn if (tcpSocket->bytesAvailable() < (int)sizeof(quint16))rn return;rn //! [8]rnrn //! [10]rn in >> blockSize;rn rnrn if (tcpSocket->bytesAvailable() < blockSize)rn return;rn //! [10] //! [11]rnrn QString nextFortune;rn in >> nextFortune;rnrn if (nextFortune == currentFortune) rn QTimer::singleShot(0, this, SLOT(requestNewFortune()));rn return;rn rn //! [11]rnrn //! [12]rn currentFortune = nextFortune;rn //! [9]rn textEdit->append(currentFortune);rn getFortuneButton->setEnabled(true);rnrn//! [12]rnrn//! [13]rnvoid Client::displayError(QAbstractSocket::SocketError socketError)rnrn switch (socketError) rn case QAbstractSocket::RemoteHostClosedError:rn break;rn case QAbstractSocket::HostNotFoundError:rn QMessageBox::information(this, tr("Fortune Client"),rn tr("The host was not found. Please check the "rn "host name and port settings."));rn break;rn case QAbstractSocket::ConnectionRefusedError:rn QMessageBox::information(this, tr("Fortune Client"),rn tr("The connection was refused by the peer. "rn "Make sure the fortune server is running, "rn "and check that the host name and port "rn "settings are correct."));rn break;rn default:rn QMessageBox::information(this, tr("Fortune Client"),rn tr("The following error occurred: %1.")rn .arg(tcpSocket->errorString()));rn rnrn getFortuneButton->setEnabled(true);rnrn//! [13]rnrnvoid Client::enableGetFortuneButton()rnrn getFortuneButton->setEnabled(!hostLineEdit->text().isEmpty()rn && !portLineEdit->text().isEmpty());rnrnrnrn//main.cpprn#include rn#include "client.h"rnrnint main(int argc, char *argv[])rnrn QApplication app(argc, argv);rn Client client;rn#ifdef Q_OS_SYMBIANrn // Make application better looking and more usable on small screenrn client.showMaximized();rn#elsern client.show();rn#endifrn return client.exec();rnrnrn[/code]rnrn这个程序是由QT自带例子fortune client改编之成的,服务器是QT的自带例子fortune serverrnrn程序的功能是在我按下发送按钮的时候,向服务器连续发送5个请求,rn但客户端只能收到一条信息(本来应该收到5条信息的),这是为什么呢?rn应该怎样改正?rnrnPS:祝大家新年快乐!
求教QTcpSocket readyRead()问题
在服务器端当有客户端连接的时候,建立个QTcpSocket *Client,connect(client,SIGNAL(readyRead(),this,SLOT(read());无法捕获readyread信号。rn但是如果用QTcpSocket派生个类tcpClient,在tcpClient类内部connect(this,SIGNAL(readyRead(),this,SLOT(read());可以捕获readyread。为神马呢?
DEBUG版本和RELEASE版本的区别?
我碰到过很多DEBUG<em>版本</em>没事,RELEASE<em>版本</em>就出<em>问题</em>的情况,很是头疼。请那位大虾讲解一下DEBUG<em>版本</em>和RELEASE<em>版本</em>的区别,或者提供参考资料,网站也可以。谢谢!
Debug版本release版本的用法
通过makefile 传入宏定义参数DEBUG,打印函数如下: #ifndef DEBUG #define debugprint(format, ...) {\ printf( (char*)format, ##__VA_ARGS__);\ } #else #define debugprint(format, ...) #endif 使用方法...
debug版本release版本的不同
各位好:rn小弟最近编了一个程序,发现debug<em>版本</em>的exe文件可以正常执行,可是<em>release</em><em>版本</em>的exe文件却不能执行。rn程序的主要功能是获取网上的入侵信息,然后发送消息到主窗口(一个对话框)并显示出来。rn单独运行<em>release</em><em>版本</em>时,就不能得到任何输出,但是当debug<em>版本</em>和<em>release</em><em>版本</em>一起运行时,<em>release</em><em>版本</em>也能同debug<em>版本</em>一样输出信息,虽然比debug<em>版本</em>慢一点。rn我怀疑是<em>release</em><em>版本</em>的消息发送和接受有<em>问题</em>,两个<em>版本</em>一起运行时<em>release</em><em>版本</em>可以搜到debug<em>版本</em>的消息,所以也能输出。不知是否是这样。rn还望各位指教。
Debug版本和Release版本的区别。
我的程序的Debug<em>版本</em>运行时没有<em>问题</em>,但Release<em>版本</em>运行时却报了读内存错,请问什么情况下可能会导致这种情况的产生?
QTcpSocket发送图片的问题~
请问,用没有办法通过QTcpSocket发送一张图片,而且速度不会很慢?
QTcpsocket发送数据的问题~
QTcpSocket如何向服务器发送float类型的数组,数组比较大~~
qtcpsocket 奇葩问题
qt4里面,简单两行代码:rnQTcpsocket *socket=new QTcpsocket();rnsocket.setLocalAddress(QHostAddress("92.168.0.1"));rn然后编译器报错:rn说setLocalAddress函数是protext函数,无法执行。rn真是奇了怪了,QTcpsocket 是public继承 QAbstractSocket的,那QAbstractSocket的protect函数,QTcpsocket 是可以直接调用的。但是编译器就是报错。rn哪位带哥,给我解释下?
关于多线程qtcpsocket问题
遇到了一<em>问题</em>。现在多个线程在使用用一个tcp客户端套接字。这些线程都会向服务器发送一个数据包并等待服务器发回数据包(阻塞方式)。在临界<em>问题</em>解决后有一个<em>问题</em>,假如多个线程都向服务器发送信息并且使用函数waitForReadyRead();等待回收的时候。会不会发生冲突即服务器发回的包错被别的线程接收到,怎样解决这个<em>问题</em>呢?
qtcpsocket致命问题
1、qt4rn2、创建一个qtcpserver,这个服务只做一件事情,有连接过来立刻close新建的连接。rn3、创建一个<em>qtcpsocket</em>,这个客户端做两件事情:一是连接服务器,连接成功发送一条报文给服务器;二是收到disconnect信号后,会去重连。rnrn大家可以自己去实现上面的功能。我实际测试下来得到一个结论:客户端不知道服务器已经断开了,还去发送数据,会导致程序崩溃。rnrn请问怎么解决?
QTcpSocket 收到数据的问题
我在linux有一个TCP SERVER,rnrnrn我用QT写的客户端在我的PC上运行。rnrnrnSERVER发送的数据,客户端收到了。但是收到的内容完全不对。。。rnrnrnrn QByteArray data = this->readAll();rn char* tmp = data.data();rn
QTcpServer和QTcpSocket问题。。。
我想达到一个这样的效果:服务端监听客户端A和客户端B,当A获得连接的时候服务端就显示A的信息(eg:ip,port等),同理B。rnrn<em>问题</em>:当服务端获取连接时,服务端如何知道是是那个客户端进行的连接呢?即:如何获得客户端的信息rn
vc Release版本调试
Release<em>版本</em>调试配置,供学习交流使用。
Debug与Release版本的区别
Debug与Release<em>版本</em>的区别 Debug与Release<em>版本</em>的区别Debug与Release<em>版本</em>的区别 Debug与Release<em>版本</em>的区别
gdb远程调试release版本
对于线上<em>release</em><em>版本</em>,由于已经剔除了debug信息,因此无法通过加载符号表来debug程序,但是如果保留了<em>release</em><em>版本</em>对应的debug<em>版本</em>,那么可以通过debug<em>版本</em>对<em>release</em><em>版本</em>进行调试。 以下假设<em>release</em>.exe是不带调试信息的<em>release</em><em>版本</em>可执行文件,debug.exe是带调试信息的debug<em>版本</em>可执行文件。 如果不是很确定是否包含调试信息,可以通过r
release版本出错
请问我用debug<em>版本</em>发布的com组件,vc调用没有错误rn为什么用<em>release</em><em>版本</em>发布的com组件,在vc调用时有些函数就产生错误。
Release版本代码的探讨
我的代码在经过优化以后突然出现<em>问题</em>,而Debug版却可以顺利运行。请问各位有没有办法在Release版的程序里设置断点进行跟踪,看看<em>问题</em>到底出在哪里?
CSocket的Release版本???
我从CSocket派生了CMySocket,并重载了OnReceive().并在OnReceive()中给主窗口发送消息在Debug<em>版本</em>时没有<em>问题</em>但是用Release<em>版本</em>时,却出现致命错误请高手指教!!!rn急急急!!!
CxImage Release版本
我在用CxImage,静态链接的lib文件。用debug<em>版本</em>的库可以正常跑,但使用<em>release</em><em>版本</em>时,总是出一些运行时的堆栈错误,各位有谁遇过这个<em>问题</em>啊?多谢了!
delphi 的release版本在哪里?
rnrnVC有debug<em>版本</em>和<em>release</em><em>版本</em> 可以在运行调试的时候选择 rnrndelphi的<em>release</em><em>版本</em>在哪里啊?rnrndelphi的RUN是不是相当于debug啊?
release版本运行问题
先写了A软件,运行没<em>问题</em>。后来在A的基础上改动了一下,大部分代码还是一样的,重写了个软件B。<em>release</em>后在别的电脑上运行不了,如果先打开A的,关闭后再打开B,B就能运行。而如果开机后直接打开B就不能运行。A一切正常。我在想是不是库没有链接到程序里,但我编译方式都是一样的,想不通是哪方面原因了。望高手赐教
Release版本怎么创建?
我用的动态链接库rnrn编译Release设置DLL后再运行就除错了rnrnDebug assertion failed!rnrn无奈了...
不能做Release版本了.
由于一次误操作,我在VC中BuilderConfigrations 选中 Win32 Release之后,点了Remove.rn从此,我这个工程就没有了生成Release<em>版本</em>的选项了.怎么办.rn(编译其他程序的时候还是完全没<em>问题</em>的)
基于ARM9和嵌入式Linux的监控系统的设计及应用.kdh下载
基于ARM9和嵌入式Linux的监控系统的设计及应用.kdh 相关下载链接:[url=//download.csdn.net/download/lukasguo/2576476?utm_source=bbsseo]//download.csdn.net/download/lukasguo/2576476?utm_source=bbsseo[/url]
本地联机使用的通讯软件-飞鸽传书下载
好用的一个软件,可以使用本软件实现本地两台或多台电脑联机,高速共享或传输数据 相关下载链接:[url=//download.csdn.net/download/cuiyulin1318/3928030?utm_source=bbsseo]//download.csdn.net/download/cuiyulin1318/3928030?utm_source=bbsseo[/url]
winform & wpf _上传_下载文件_常用类 _服务器_C#_调用cmd下载
winform & wpf _上传_下载文件_常用类 _服务器_C# 调用cmd 相关下载链接:[url=//download.csdn.net/download/feifan66/4920800?utm_source=bbsseo]//download.csdn.net/download/feifan66/4920800?utm_source=bbsseo[/url]
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池
我们是很有底线的