读书人

C++Builder程序的调试有关问题

发布时间: 2012-03-16 16:34:56 作者: rapoo

C++Builder程序的调试问题

这行代码为什么F7调试不进去呀
AnsiString Msg = RestClient::getConfFile(FRestPostUrl,datFilePath);


RestClient.h

//---------------------------------------
/***************************************
* @desc[小休客户端申请及配置]
* @date 2010.08.25
****************************************/
#ifndef RestClientH
#define RestClientH

#include <Classes.hpp>
#include <IdBaseComponent.hpp>
#include <IdComponent.hpp>
#include <IdHTTP.hpp>
#include <IdTCPClient.hpp>
#include <IdTCPConnection.hpp>
//---------------------------------------
class PACKAGE RestClient
{
public:
RestClient();
~RestClient();
/*
* @desc 小休申请

* @GetUrl url
* @agentcode 工号
* @SignInTime 签入时间

* @return 小休休息情况
*/
static AnsiString RestApplyAct(AnsiString GetUrl,AnsiString agentcode,AnsiString SignInTime);
/*
* @desc 获取配置文件
* @filename 保存文件名
* @return 错误信息
*/
static AnsiString getConfFile(AnsiString GetUrl,AnsiString filename = "restmenu.dat");


private:
/*
*desc 客户端HTTP控件【由于是单客户端不存在资源临界访问问题】
*/
static TIdHTTP* IdHTTPClient;

static TIdHTTP* getHttpInstance(void);
};

#endif





RestClient.cpp

//---------------------------------------

#include <vcl.h>
#pragma hdrstop
#include "RestAccessClient.h"
#include "WebMiddleWare.h"
#include "IniFiles.hpp"
//---------------------------------------

#pragma package(smart_init)

TIdHTTP* RestClient::IdHTTPClient = NULL;

RestClient::RestClient()
{
IdHTTPClient = NULL;
}
RestClient::~RestClient()
{
if(IdHTTPClient != NULL) delete IdHTTPClient;
}
TIdHTTP* RestClient::getHttpInstance()
{
if(IdHTTPClient == NULL)
{
IdHTTPClient = new TIdHTTP(NULL);
IdHTTPClient->ProtocolVersion = pv1_1;
IdHTTPClient->ConnectTimeout = 1500;
IdHTTPClient->Request->Accept = "text/html, */*";
}
return IdHTTPClient;
}

AnsiString RestClient::RestApplyAct(AnsiString GetUrl,AnsiString agentcode,AnsiString SignInTime)
{
AnsiString Msg = "";
TStringStream* tempResp = new TStringStream("");
try
{
GetUrl +="/ActionServlet?ActionMethod=APPLYREST&AgentCode="+agentcode;
GetUrl +="&SignInTime=" + SignInTime;
if(!getHttpInstance()->Connected())
getHttpInstance()->Connect();
getHttpInstance()->Get(GetUrl,tempResp);
Msg = tempResp->DataString;
}catch(Exception &e)
{
Msg = e.Message;
}
delete tempResp;
return Msg;
}


AnsiString RestClient::getConfFile(AnsiString GetUrl,AnsiString filename)
{
AnsiString Msg = "";
WebMMObject* webMobj = new WebMMObject(NULL,getHttpInstance());
TStringList* strlist = new TStringList;
webMobj->PostUrl = GetUrl;
webMobj->getConfContext(strlist);
TIniFile *IniFile = new TIniFile(filename);
IniFile->WriteInteger("REST MANAGER","RESTTYPE_COUNT", strlist->Count);

for(int i = 0 ; i < strlist->Count ; i++)
{
IniFile->WriteString("REST MANAGER","RESTTYPE_"+IntToStr(i),strlist->Strings[i]);
}
IniFile->UpdateFile();
if ( strlist->Count == 0 ) {
Msg = "";
}else
Msg = "1";
delete IniFile;
delete webMobj;
strlist->Clear();


delete strlist;

return Msg;
}

[解决办法]
调试时函数上有断点吗,把cb重启一下试试
[解决办法]
设置断点,单步执行 F8

读书人网 >C++ Builder

热点推荐