1. 简单解决问题的方式是
找cpp 缺少 #include "stdafx.h" 添加。并且使用 《预编译选项》
2.被动解决方式
又分为2种方式
1.选择排除 lib 再附加lib nafxcwd.lib LIBCMTD.lib 附加的顺序不一样来操作。
2.另外一种简单的做法 在附加lib处添加 nafxcwd.lib
使用 Client.lib 会出现问题,libc 和mfc的库冲突问题。
这边可以在编译时加lib参数 nafxcwd.lib。但是我项目本身不使用mfc。
。
1>nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 LIBCMTD.lib(new.obj) 中定义
1>nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已经在 LIBCMTD.lib(dbgdel.obj) 中定义
1>nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) 已经在 libcpmtd.lib(newaop.obj) 中定义
1>nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete[](void *)" (??_V@YAXPAX@Z) 已经在 LIBCMTD.lib(delete2.obj) 中定义
1> 正在创建库 ..\bin\Service.lib 和对象 ..\bin\Service.exp
1>..\bin\Service.exe : fatal error LNK1169: 找到一个或多个多重定义的符号
1> 正在搜索库
1> 正在搜索 ../lib/CMDClient.lib:
1> 正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\kernel32.lib:
1> 正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\user32.lib:
1> 正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\gdi32.lib:
1> 正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\winspool.lib:
1> 正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\comdlg32.lib:
1> 正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\advapi32.lib:
1> 正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\shell32.lib:
1> 正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\ole32.lib:
1> 正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\oleaut32.lib:
1> 正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\uuid.lib:
1> 正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\odbc32.lib:
1> 正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\odbccp32.lib:
1> 正在搜索 D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\LIBCMTD.lib:
1> 正在搜索 D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\OLDNAMES.lib:
1> 正在搜索 D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\lib\uafxcwd.lib:
1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 LIBCMTD.lib(new.obj) 中定义
1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已经在 LIBCMTD.lib(dbgdel.obj) 中定义
1> 正在搜索 C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\msimg32.lib:
MSDN 解决问题链接
http://support.microsoft.com/kb/148652/zh-cn
CRT 库对 new、delete 和 DllMain 函数使用弱外部链接。MFC 库也包含 new、delete 和 DllMain 函数。这些函数要求先链接 MFC 库,然后再链接 CRT 库。
回到顶端 | 提供反馈
该问题有两种解决方法。第一种方法是强制链接器按照正确的顺序链接库。第二种方法是由您亲自查找导致问题的模块并纠正它。
注意 以下步骤基于 Visual C++ 6.0。
解决方案一:强制链接器按照正确的顺序链接库
- 在“项目”菜单上,单击“设置”。
- 在“项目设置”对话框的“以下项目的设置”视图中,单击以选中出现链接错误的项目配置。
- 在“链接”选项卡上,单击以选中“类别”组合框中的“输入”。
- 在“忽略库”框中,插入库名(例如,Nafxcwd.lib;Libcmtd.lib)。
注意:等效的链接器命令行是:/NOD:<library name>。
- 在“对象/库模块”框中,插入库名。必须确保这些库按顺序列出,而且是行中的前两个库(例如,Nafxcwd.lib 和 Libcmtd.lib)。
要在 Visual C++ .NET 中设置该选项,请阅读“设置 Visual C++ 项目属性”联机帮助主题。
解决方案二:查找导致问题的模块并纠正它
若要查看当前的库链接顺序,请按照下列步骤操作:
- 在“项目”菜单上,单击“设置”。
- 在“项目设置”对话框的“以下项目的设置”视图中,单击以选中出现链接错误的项目配置。
- 在“链接”选项卡上的“项目选项”框中键入 /verbose:lib。
- 重新生成项目。在链接过程中,这些库将在输出窗口中列出。
回到顶端 | 提供反馈
这种现象是设计导致的。
回到顶端 | 提供反馈
使用 MFC 库时,务必先链接它们,然后再链接 CRT 库。这可以通过确保项目中的每个文件都首先包含 Msdev\Mfc\Include\Afx.h 来完成。
直接包含 ( #include <Afx.h> ) 或间接包含 (#include <Stdafx.h>) 都可以。Afx.h 包含文件会通过使用 #pragma comment (lib,"<libname>") 指令来强制采用库的正确顺序。
如果源文件的扩展名为 .c,或者该文件的扩展名为 .cpp 但不使用 MFC,则可以创建一个较小的头文件 (Forcelib.h) 并将其放在模块的顶端。这个新的头文件可确保按照正确的顺序搜索库。
Visual C++ 不包含该头文件。要创建此文件,请按照下列步骤操作:
- 打开 Msdev\Mfc\Include\Afx.h。
- 选定 #ifndef _AFX_NOFORCE_LIBS 和 #endif //!_AFX_NOFORCE_LIBS 之间的行。
- 将选定部分复制到 Windows 剪贴板。
- 创建一个新文本文件。
- 将剪贴板的内容粘贴到这个新文件中。
- 将该文件另存为 Msdev\Mfc\Include\Forcelib.h。
在 Visual C++ .NET 中重现问题的步骤
- 启动 Microsoft Visual Studio .NET。
- 在“文件”菜单上,指向“新建”,然后单击“项目”。
- 单击“项目类型”下的“Visual C++ 项目”,然后单击“模板”下的“MFC 应用程序”。
- 在“名称”文本框中,键入 Q148652。
- 在“位置”文本框中,键入 C:\Test,然后单击“确定”。
- 在“MFC 应用程序向导”对话框中,单击“应用程序类型”。
- 单击“应用程序类型”下的“基于对话框”,然后单击“MFC 的使用”下的“在静态库中使用 MFC”。
- 单击“完成”。
- 在“解决方案资源管理器”中,选择“源文件”下的全部三个 .cpp 文件。
- 右键单击三个选定的文件,然后单击“删除”。
- 右键单击“源文件”,指向“添加”,然后单击“添加新项”。
- 单击“模板”下的“C++ 文件”。在“名称”文本框中,键入 Aa。单击“打开”。
- 将以下代码粘贴到 Aa.cpp 中:
int test(){new int; return 1;}
- 右键单击“源文件”,指向“添加”,然后单击“添加现有项”。
- 选择以下文件:
- Q148652.cpp
- Q148652Dlg.cpp
- stdafx.cpp
- 单击“打开”。
- 您在第 15 步中选择的文件将出现在“源文件”下。
- 选择“源文件”下的全部四个 .cpp 文件。
- 右键单击选定的四个 .cpp 文件,然后单击“属性”。
- 展开“配置属性”,然后展开“C/C++”。
- 单击“预编译头”。
- 将“创建/使用预编译头”属性设置为“不使用预编译头”。单击“确定”。
- 在“生成”菜单上,单击“重新生成解决方案”。
回到顶端 | 提供反馈
注意:本篇“快速发布”文章是从 Microsoft 支持组织直接创建的。 文中包含的信息按原样提供,用于响应紧急问题。 由于发布仓促,材料可能包含印刷错误,并且可能随时修订,恕不另行通知。 有关其他注意事项,请参阅使用条款。
静态库才会发生。
solution
1. static lib
2.exe windows console client .
3 .setting MDLIB to lib directionary.
设置它本身依赖的dll
4. lib 目录情况
5. main project setting include dir
6. mian link
ok 就可以了。 static lib pdb 就可以编译进 main project 文件里了。
重建了项目!找这个问题花了我2个小时。
或者在编译自己手工改
编译要使用pdb写入。连接需要使用pdb。 静态库最终将合并入exe文件所以pdb文件也需要一起用。
/VERBOSE 会把
MSDN 相关内容
链接
http://msdn.microsoft.com/zh-cn/library/t2fck18t(v=vs.80).aspx
LINK 还使用 PDB 保存 .exe 文件或 .dll 文件的调试信息。程序的 PDB 既是输出文件也是输入文件,因为 LINK 在重新生成程序时更新 PDB。
http://msdn.microsoft.com/zh-cn/library/6y6t9esh(v=vs.80).aspx
link 配置目录。
CL 使用 CL 和 INCLUDE。
生成 C/C++ 程序
在命令行上生成
为命令行生成设置路径和环境变量
NMAKE 参考
运行 NMAKE
生成文件的内容
描述块
生成文件中的命令
宏和 NMAKE
推理规则
点指令
生成文件预处理
VCBUILD 参考
VCBUILD 系统要求
VCBUILD 命令行
VCBUILD 选项
Quote of the Day:
Alcohol, if taken in sufficient quantities, produces all the effects of intoxication.
--Oscar Wilde
参考
pdb多 进程征用
http://www.cnblogs.com/joeylee/archive/2012/12/12/2815210.html
http://hi.baidu.com/vc_net/item/ffd829c4132d0862f6c95d48
http://www.cppblog.com/sunicdavy/archive/2011/08/09/152850.html
他的方法需要xcopy复制。解决4099方法。
http://www.cppblog.com/huyutian/archive/2012/10/06/192930.html
vc 编译选项
http://hi.baidu.com/odzienkvkodvxze/item/88e75cd8f9a06edf251f408e
混合显卡intel + gpu 卡 .
买一个 displaylink 转换卡。
铭鑫 taobao usb3
摘要: class Father
{
public virtual void do1(){
Console.WriteLine("father do1");
}
public virtual void do2()
{
Console.WriteLine("father do2");
}
}
class Son :Father
{
public void do1()
{
Console.WriteLine("Son do1");
}
public override void do2()
{
Console.WriteLi
阅读全文
摘要: select * from tables() ;
function 返回成游标
select function(a) from dual ;
阅读全文
摘要: cmd.CommandText = @"INSERT INTO (
VALUES
(:date_ ) ; ";
阅读全文
SQL*Plus系统环境变量有哪些?如何修改?
软件环境:
1、Windows NT4.0+ORACLE 8.0.4
2、ORACLE安装路径为:C:\ORANT
实现方法:
show和set命令是两条用于维护SQL*Plus系统变量的命令
SQL> show all --查看所有68个系统变量值
SQL> show user --显示当前连接用户
SQL> show error --显示错误
SQL> set heading off --禁止输出列标题,默认值为ON
SQL> set feedback off --禁止显示最后一行的计数反馈信息,默认值为"对6个或更多的记录,回送ON"
SQL> set timing on --默认为OFF,设置查询耗时,可用来估计SQL语句的执行时间,测试性能
SQL> set sqlprompt "SQL> " --设置默认提示符,默认值就是"SQL> "
SQL> set linesize 1000 --设置屏幕显示行宽,默认100
SQL> set autocommit ON --设置是否自动提交,默认为OFF
SQL> set pause on --默认为OFF,设置暂停,会使屏幕显示停止,等待按下ENTER键,再显示下一页
SQL> set arraysize 1 --默认为15
SQL> set long 1000 --默认为80
说明:
long值默认为80,设置1000是为了显示更多的内容,因为很多数据字典视图中用到了long数据类型,如:
SQL> desc user_views
列名 可空值否 类型
------------------------------- -------- ----
VIEW_NAME NOT NULL VARCHAR2(30)
TEXT_LENGTH NUMBER
TEXT LONG
SQL> define a = '''20000101 12:01:01''' --定义局部变量,如果想用一个类似在各种显示中所包括的回车那样的常量,
--可以用define命令来设置
SQL> select &a from dual;
原值 1: select &a from dual
新值 1: select '20000101 12:01:01' from dual
'2000010112:01:01
-----------------
20000101 12:01:01
问题提出:
1、用户需要对数据库用户下的每一张表都执行一个相同的SQL操作,这时,一遍、一遍的键入SQL语句是很麻烦的
实现方法:
SQL> set heading off --禁止输出列标题
SQL> set feedback off --禁止显示最后一行的计数反馈信息
列出当前用户下所有同义词的定义,可用来测试同义词的真实存在性
select 'desc '||tname from tab where tabtype='SYNONYM';
查询当前用户下所有表的记录数
select 'select '''||tname||''',count(*) from '||tname||';' from tab where tabtype='TABLE';
把所有符合条件的表的select权限授予为public
select 'grant select on '||table_name||' to public;' from user_tables where 《条件》;
删除用户下各种对象
select 'drop '||tabtype||' '||tname from tab;
删除符合条件用户
select 'drop user '||username||' cascade;' from all_users where user_id>25;
快速编译所有视图
----当在把数据库倒入到新的服务器上后(数据库重建),需要将视图重新编译一遍,
----因为该表空间视图到其它表空间的表的连接会出现问题,可以利用PL/SQL的语言特性,快速编译。
SQL> SPOOL ON.SQL
SQL> SELECT'ALTER VIEW '||TNAME||' COMPILE;' FROM TAB;
SQL> SPOOL OFF
然后执行ON.SQL即可。
SQL> @ON.SQL
当然,授权和创建同义词也可以快速进行,如:
SQL> SELECT 'GRANT SELECT ON '||TNAME||' TO 用户名;' FROM TAB;
SQL> SELECT 'CREATE SYNONYM '||TNAME||' FOR 用户名.'||TNAME||';' FROM TAB;
SQL*PLUS常用命令列表
[ 天堂之水 2002年9月18日,阅读人数36人 ]
软件环境:
1、Windows 98 第二版
2、Oracle数据库版本为:Personal Oracle7 Release 7.3.4.0.0
3、Oracle安装路径为:C:\ORAWIN95
命令列表:
假设当前执行命令为:select * from tab;
(a)ppend 添加文本到缓冲区当前行尾 a order by tname 结果:select * from tab order by tname;
(注:a后面跟2个空格)
(c)hange/old/new 在当前行用新的文本替换旧的文本 c/*/tname 结果:select tname from tab;
(c)hange/text 从当前行删除文本 c/tab 结果:select tname from ;
del 删除当前行
del n 删除第n行
(i)nput 文本 在当前行之后添加一行
(l)ist 显示缓冲区中所有行
(l)ist n 显示缓冲区中第 n 行
(l)ist m n 显示缓冲区中 m 到 n 行
run 执行当前缓冲区的命令
/ 执行当前缓冲区的命令
r 执行当前缓冲区的命令
@文件名 运行调入内存的sql文件,如:
SQL> edit s<回车>
如果当前目录下不存在s.sql文件,则系统自动生成s.sql文件,
在其中输入“select * from tab;”,存盘退出。
SQL> @s<回车>
系统会自动查询当前用户下的所有表、视图、同义词。
@@文件名 在.sql文件中调用令一个.sql文件时使用
save 文件名 将缓冲区的命令以文件方式存盘,缺省文件扩展名为.sql
get 文件名 调入存盘的sql文件
start 文件名 运行调入内存的sql文件
spool 文件名 把这之后的各种操作及执行结果“假脱机”即存盘到磁盘文件上,默认文件扩展名为.lst
spool 显示当前的“假脱机”状态
spool off 停止输出
例:
SQL> spool a
SQL> spool
正假脱机到 A.LST
SQL> spool off
SQL> spool
当前无假脱机
exit 退出SQL*PLUS
desc 表名 显示表的结构
show user 显示当前连接用户
show error 显示错误
show all 显示所有68个系统变量值
edit 打开默认编辑器,Windows系统中默认是notepad.exe,把缓冲区中最后一条SQL语句调入afiedt.buf文件中进行编辑
edit 文件名 把当前目录中指定的.sql文件调入编辑器进行编辑
clear screen 清空当前屏幕显示
SQL> show all
appinfo 为 OFF 并且已设置为 "SQL*Plus"
arraysize 15
autocommit OFF
autoprint OFF
autorecovery OFF
autotrace ON EXPLAIN STATISTICS
blockterminator "." (hex 2e)
btitle OFF 为下一条 SELECT 语句的前几个字符
cmdsep OFF
colsep " "
compatibility version NATIVE
concat "." (hex 2e)
copycommit 0
COPYTYPECHECK 为 ON
define "&" (hex 26)
describe DEPTH 1 LINENUM OFF INDENT ON
echo OFF
editfile "afiedt.buf"
embedded OFF
escape OFF
用于 6 或更多行的 FEEDBACK ON
flagger OFF
flush ON
heading ON
headsep "|" (hex 7c)
instance "local"
linesize 80
lno 14
loboffset 1
logsource ""
long 80
longchunksize 80
markup HTML OFF HEAD "<style type='text/css'> body {font:10pt Arial,Helvetica,sa
ns-serif; color:black; background:White;} p {font:10pt Arial,Helvetica,sans-seri
f; color:black; background:White;} table,tr,td {font:10pt Arial,Helvetica,sans-s
erif; color:Black; background:#f7f7e7; padding:0px 0px 0px 0px; margin:0px 0px 0
px 0px;} th {font:bold 10pt Arial,Helvetica,sans-serif; color:#336699; backgroun
d:#cccc99; padding:0px 0px 0px 0px;} h1 {font:16pt Arial,Helvetica,Geneva,sans-s
erif; color:#336699; background-color:White; border-bottom:1px solid #cccc99; ma
rgin-top:0pt; margin-bottom:0pt; padding:0px 0px 0px 0px;} h2 {font:bold 10pt Ar
ial,Helvetica,Geneva,sans-serif; color:#336699; background-color:White; margin-t
op:4pt; margin-bottom:0pt;} a {font:9pt Arial,Helvetica,sans-serif; color:#66330
0; background:#ffffff; margin-top:0pt; margin-bottom:0pt; vertical-align:top;}</
style><title>SQL*Plus Report</title>" BODY "" TABLE "border='1' width='90%' alig
n='center' summary='Script output'" SPOOL OFF ENTMAP ON PREFORMAT OFF
newpage 1
null ""
numformat ""
numwidth 10
pagesize 14
PAUSE 为 OFF
pno 0
recsep WRAP
recsepchar " " (hex 20)
release 1002000100
repfooter OFF 为 NULL
repheader OFF 为 NULL
serveroutput OFF
shiftinout INVISIBLE
showmode OFF
spool OFF
sqlblanklines OFF
sqlcase MIXED
sqlcode 0
sqlcontinue "> "
sqlnumber ON
sqlpluscompatibility 10.2.0
sqlprefix "#" (hex 23)
sqlprompt "SQL> "
sqlterminator ";" (hex 3b)
suffix "sql"
tab ON
termout ON
timing ON
trimout ON
trimspool OFF
ttitle OFF 为下一条 SELECT 语句的前几个字符
underline "-" (hex 2d)
USER 为 "ITMP"
verify ON
wrap : 将换至下一行
SQL>
1.port 被占用了
360看看 kill掉
ps -ax
netstat -an
2. host 主机解析出了问题 linux 上
[oracle@oracle bin]$
more /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
192.168.2.50 oracle oracle
[oracle@oracle bin]$
3. 安装oracle 创库的时候 往往会自动的 创立一个监听器..
比如一台机器上有2个库 ....那么很可能有2个监听器.... listener 1521
NL-00853: undefined command "ls". Try "help"
LSNRCTL> start
Starting /opt/app/oracle/product/10.2.0/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 10.2.0.1.0 - Production
System parameter file is /opt/app/oracle/product/10.2.0/network/admin/listener.ora
Log messages written to /opt/app/oracle/product/10.2.0/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date 01-DEC-2009 20:11:55
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /opt/app/oracle/product/10.2.0/network/admin/listener.ora
Listener Log File /opt/app/oracle/product/10.2.0/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
LSNRCTL>
LSNRCTL>
LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date 01-DEC-2009 20:11:55
Uptime 0 days 0 hr. 2 min. 38 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /opt/app/oracle/product/10.2.0/network/admin/listener.ora
Listener Log File /opt/app/oracle/product/10.2.0/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "idmp" has 1 instance(s).
Instance "idmp", status READY, has 1 handler(s) for this service...
Service "idmpXDB" has 1 instance(s).
Instance "idmp", status READY, has 1 handler(s) for this service...
Service "idmp_XPT" has 1 instance(s).
Instance "idmp", status READY, has 1 handler(s) for this service...
The command completed successfully
LSNRCTL>
CREATE OR REPLACE FUNCTION get_hash_val (p_in VARCHAR2)
RETURN VARCHAR2
IS
l_hash VARCHAR2 (6000);
BEGIN
l_hash :=RAWTOHEX(UTL_RAW.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.md5 (input_string=> p_in)));
RETURN l_hash;
END;
在 System.Collections.ArrayList.ToArray(Type type)
在 log4net.Appender.MemoryAppender.GetEvents()
在 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
在 System.Threading.ThreadHelper.ThreadStart()
lock (MemoryAppender){
MemoryAppender.GetEvents()
MemoryAppender.clear()
}