Pārlūkot izejas kodu

自动重连资源释放

USER-20180514DO\Administrator 7 gadi atpakaļ
vecāks
revīzija
135924350c

+ 16 - 1
NetLib/PduDataFormat.cpp

@@ -13,7 +13,10 @@ CPduDataFormat::CPduDataFormat(void)
13 13
 
14 14
 CPduDataFormat::~CPduDataFormat(void)
15 15
 {
16
-	if(NULL != m_pInstance) delete m_pInstance;
16
+	UnLoad();
17
+
18
+	if(NULL != m_pInstance) 
19
+		delete m_pInstance;
17 20
 }
18 21
 
19 22
 /*****************************************************************
@@ -79,6 +82,18 @@ BOOL CPduDataFormat::Load(LPCTSTR a_lpFileName)
79 82
 	return TRUE;
80 83
 }
81 84
 
85
+void CPduDataFormat::UnLoad()
86
+{
87
+	for (int i = 0; i < PDU_MAX_CMD_COUNT; i++)
88
+	{
89
+		if (m_pDataFormatArray[i] != NULL)
90
+		{
91
+			delete m_pDataFormatArray[i];
92
+			m_pDataFormatArray[i] = NULL;
93
+		}
94
+	}
95
+}
96
+
82 97
 /*****************************************************************
83 98
 **【函数名称】	Load
84 99
 **【函数功能】	从数据库中读取PDU数据格式配置信息

+ 1 - 0
NetLib/PduDataFormat.h

@@ -35,6 +35,7 @@ public:
35 35
 
36 36
 	// 初始化操作
37 37
 	BOOL Load(LPCTSTR a_lpFileName);			// 从文件中读取配置
38
+	void UnLoad();
38 39
 	BOOL Load();								// 从数据库中读取配置
39 40
 
40 41
 	// 拷贝一个指定命令的副本

+ 2 - 2
Public/OTL/OtlConnHost.cpp

@@ -82,7 +82,7 @@ BOOL COtlConnHost::Connect()
82 82
 
83 83
             if( DB_Error == DbType )
84 84
             {
85
-                sprintf_s( m_szLastError, OTL_MAX_BUFF_SIZE, "数据源:%d查找失败,请确认数据源是否正常!", m_DSN );
85
+                sprintf_s( m_szLastError, OTL_MAX_BUFF_SIZE, "数据源:%s查找失败,请确认数据源是否正常!", m_DSN.operator LPCTSTR());
86 86
                 return FALSE;
87 87
             }
88 88
 
@@ -495,7 +495,7 @@ BOOL COtlConnHost::GetRegDbInfo( LPSTR lpConnStr )
495 495
     strPass = szTmp;
496 496
 
497 497
     // 生成连接字符串
498
-    sprintf_s( lpConnStr, OTL_MAX_BUFF_SIZE, "DSN=%s; UID=%s; PWD=%s;", strDsn, strUer, strPass );
498
+    sprintf_s( lpConnStr, OTL_MAX_BUFF_SIZE, "DSN=%s; UID=%s; PWD=%s;", strDsn.operator LPCTSTR(), strUer.operator LPCTSTR(), strPass.operator LPCTSTR());
499 499
 
500 500
     return TRUE;
501 501
 }

+ 10 - 3
TtsInterface/TtsCore.cpp

@@ -3,7 +3,7 @@
3 3
 #include "md5c.h"
4 4
 #include "TtsIbm.h"
5 5
 #include "TTSjt.h"
6
-
6
+#include "..\\Logger\Logger.h"
7 7
 
8 8
 SINGLETON_IMPLEMENT(CTtsCore)
9 9
 
@@ -169,11 +169,18 @@ bool CTtsCore::setTTSParam( int NumReadType, int Speed, int Volume )
169 169
 bool CTtsCore::string2Audio( LPTSTR Text, LPTSTR AudioName, int Len )
170 170
 {
171 171
 	// 如果已存在当前文本串的语音文件
172
-	if(__isAudioExisted(Text, AudioName, Len, false)) 
172
+	ILogger::getInstance().log(LOG_CLASS_BUSI, LOG_LEVEL_NORMAL, _T("{CTtsCore.string2Audio}: 检查语音文件是否已经存在"));
173
+	if (__isAudioExisted(Text, AudioName, Len, false))
174
+	{
175
+		ILogger::getInstance().log(LOG_CLASS_BUSI, LOG_LEVEL_NORMAL, _T("{CTtsCore.string2Audio}: 语音文件已经存在"));
173 176
 		return true;
177
+	}
178
+	ILogger::getInstance().log(LOG_CLASS_BUSI, LOG_LEVEL_NORMAL, _T("{CTtsCore.string2Audio}: 语音文件不存在准备生成语音文件"));
174 179
 
175
-	if(m_TTSImmplement == NULL)
180
+	if (m_TTSImmplement == NULL)
181
+	{
176 182
 		return false;
183
+	}
177 184
 
178 185
 	return m_TTSImmplement->string2Audio(Text, AudioName);
179 186
 }

+ 6 - 2
TtsInterface/TtsIbm.cpp

@@ -1,6 +1,6 @@
1 1
 #include "StdAfx.h"
2 2
 #include "TTSibm.h"
3
-
3
+#include "..\\Logger\Logger.h"
4 4
 
5 5
 CTtsIbm::CTtsIbm(void) : m_Handle(NULL_ECI_HAND), m_Module(NULL), m_ProcEciNew(NULL), m_ProcEciDelete(NULL), m_ProcEciSetParam(NULL), m_ProcEciSetVoiceParam(NULL), 
6 6
 	m_ProcEciSetOutputFilename(NULL), m_ProcEciAddText(NULL), m_ProcEciSynthesize(NULL), m_ProcEciSynchronize(NULL), m_ProcEciSynthesizeFile(NULL)
@@ -145,14 +145,18 @@ bool CTtsIbm::string2Audio( LPTSTR a_Text, LPTSTR a_AudioName )
145 145
 	if(!m_ProcEciSetOutputFilename(m_Handle, a_AudioName))
146 146
 		return false;
147 147
 
148
+	ILogger::getInstance().log(LOG_CLASS_BUSI, LOG_LEVEL_NORMAL, _T("{CTtsIbm.string2Audio}: 开始合成文件"));
148 149
 	// 开始合成
149
-	if(!m_ProcEciAddText(m_Handle, (ECIInputText)a_Text))
150
+	if(!m_ProcEciAddText(m_Handle, /*(ECIInputText)*/(const char*)a_Text))
150 151
 		return false;
152
+	ILogger::getInstance().log(LOG_CLASS_BUSI, LOG_LEVEL_NORMAL, _T("{CTtsIbm.string2Audio}: 合成文件完成"));
151 153
 
152 154
 	if(!m_ProcEciSynthesize(m_Handle))
153 155
 		return false;
154 156
 
157
+	ILogger::getInstance().log(LOG_CLASS_BUSI, LOG_LEVEL_NORMAL, _T("{CTtsIbm.string2Audio}: m_ProcEciSynchronize函数开始"));
155 158
 	m_ProcEciSynchronize(m_Handle);
159
+	ILogger::getInstance().log(LOG_CLASS_BUSI, LOG_LEVEL_NORMAL, _T("{CTtsIbm.string2Audio}: m_ProcEciSynchronize函数完成"));
156 160
 
157 161
 	return true;
158 162
 }