工作需要,要写一个vc的exe的Com,对于一个vc初学者来说,这个还是比较有难度的,还好之前有看过基本vc的书,也经常没事的时候看看vc的code,虽然没有具体开发过什么,但是也了解一些。
今天想想,要写一个COM,但是我一直都没vc的一些有用的类,之前一直使用C# 所以自己总结过许多类,来方便自己以后的开发。但vc的我一个也没有。
唉,那就先写一个CLOG的类吧,于是根据我C#中log类的设计,设计出一版VC的code。将在下篇中介绍下CLog的设计。
但是第一个遇到的问题就是写汉字到文件中,使用CStdioFile 文件中根本没有任何东西写进去,只有写数字和字母还可以,我是一看英语就比较头疼的那类,所以还是希望自己的log中下一些中文的东西。
于是尝试使用CFile的类, 发现使用CFile的类可以将中文写入,只不过需要带入的是char *型的参数。
但是在vs。net 2005中,要把一个CString转换成char*就会出错,于是就Google吧
找到方法如下:
将Cstrng --> char *
DWORD leg = WideCharToMultiByte(CP_OEMCP,NULL,csFullData,-1,NULL,0,NULL,FALSE);
CHAR strchar [5000];
WideCharToMultiByte(CP_OEMCP,NULL,csFullData,-1,strchar,leg,NULL,FALSE);
目前我的Clog已经可以正确的工作了。
MultiByteToWideChar和WideCharToMultiByte用法详解 : http://blog.csdn.net/norains/archive/2006/12/25/1461174.aspx
今天想想,要写一个COM,但是我一直都没vc的一些有用的类,之前一直使用C# 所以自己总结过许多类,来方便自己以后的开发。但vc的我一个也没有。
唉,那就先写一个CLOG的类吧,于是根据我C#中log类的设计,设计出一版VC的code。将在下篇中介绍下CLog的设计。
但是第一个遇到的问题就是写汉字到文件中,使用CStdioFile 文件中根本没有任何东西写进去,只有写数字和字母还可以,我是一看英语就比较头疼的那类,所以还是希望自己的log中下一些中文的东西。
于是尝试使用CFile的类, 发现使用CFile的类可以将中文写入,只不过需要带入的是char *型的参数。
但是在vs。net 2005中,要把一个CString转换成char*就会出错,于是就Google吧
找到方法如下:
将Cstrng --> char *
DWORD leg = WideCharToMultiByte(CP_OEMCP,NULL,csFullData,-1,NULL,0,NULL,FALSE);
CHAR strchar [5000];
WideCharToMultiByte(CP_OEMCP,NULL,csFullData,-1,strchar,leg,NULL,FALSE);
目前我的Clog已经可以正确的工作了。
MultiByteToWideChar和WideCharToMultiByte用法详解 : http://blog.csdn.net/norains/archive/2006/12/25/1461174.aspx