<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[yangjun111122的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/yangjun111122</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yangjun111122]]></copyright><item><title><![CDATA[浮点数在intel上的二进制存储结构，以及如何判断一个浮点数是否为整数]]></title><link>https://blog.youkuaiyun.com/yangjun111122/article/details/6259900</link><guid>https://blog.youkuaiyun.com/yangjun111122/article/details/6259900</guid><author>yangjun111122</author><pubDate>Fri, 18 Mar 2011 20:15:00 +0800</pubDate><description><![CDATA[在这里，我就不解释那些ieee的术语，因为大家只要一搜索，到处都有。这里我用一个直观的实例解释float浮点数在intel机器上的存储方式，并给出计算方法，让人能一目了然的明白如何将二进制存储的浮点数的转换成我们常见的十进制形式，并解释为何有的浮点数不能被精确表示，如12.34常]]></description><category></category></item><item><title><![CDATA[标准C++的字符串操作]]></title><link>https://blog.youkuaiyun.com/yangjun111122/article/details/6205377</link><guid>https://blog.youkuaiyun.com/yangjun111122/article/details/6205377</guid><author>yangjun111122</author><pubDate>Thu, 24 Feb 2011 16:02:00 +0800</pubDate><description><![CDATA[使用过MFC会发现CString比std::string好用，而使用过C#，会发现System.String用起来更爽。标准C++是否也可以得心应手地处理字符串呢？答案是肯定的，我接下来 会介绍如何实现以下操作 
字符串的format 
char*, wchar_t*, _bstr_t, CComBSTR, basic_string, System.String间的转换
Trim操作 
字符串的分词
字符串与各种类型间的转换 
字符串的format 
CString与System.String]]></description><category></category></item><item><title><![CDATA[vs2008 快捷键大全]]></title><link>https://blog.youkuaiyun.com/yangjun111122/article/details/6202268</link><guid>https://blog.youkuaiyun.com/yangjun111122/article/details/6202268</guid><author>yangjun111122</author><pubDate>Wed, 23 Feb 2011 13:43:00 +0800</pubDate><description><![CDATA[<br />命令名 快捷键 说明<br />编辑.折叠到定义<br />Ctrl + M，Ctrl + O<br />自动确定在代码中创建区域的逻辑边界（如过程），然后隐藏它们。<br />命令名 快捷键 说明<br />编辑.折叠到定义<br />Ctrl + M，Ctrl + O<br />自动确定在代码中创建区域的逻辑边界（如过程），然后隐藏它们。<br />编辑.注释选定内容<br />Ctrl + K，Ctrl + C<br />使用编程语言的正确注释语法将代码的当前行标记为注释。(vc2003)]]></description><category></category></item><item><title><![CDATA[数据对齐]]></title><link>https://blog.youkuaiyun.com/yangjun111122/article/details/6199504</link><guid>https://blog.youkuaiyun.com/yangjun111122/article/details/6199504</guid><author>yangjun111122</author><pubDate>Tue, 22 Feb 2011 11:14:00 +0800</pubDate><description><![CDATA[数据对齐的原因平台移植原因：不是所有的硬件平台都能访问任意地址上的任意数据；某些硬件平台只能在某些地址处取某些特定类型的数据，否则抛出异常（如MAC，要求数据对齐，不对齐就抛出异常）性能原因：数据结构（尤其是栈）应该尽可能地在自然边界上对齐。因为访问未对齐的内存，处理器需要作两次内存访问；而对齐的内存访问仅需要一次访问。对齐规则<br />       每个特定平台上的编译器都有自己的默认“对齐系数（也叫对齐模数）”。程序员可以通过预编译命令#pragma pack(n), n=1,2,4,8,16来改变这]]></description><category></category></item><item><title><![CDATA[在Windows下使用TTS（C#代码）]]></title><link>https://blog.youkuaiyun.com/yangjun111122/article/details/6180600</link><guid>https://blog.youkuaiyun.com/yangjun111122/article/details/6180600</guid><author>yangjun111122</author><pubDate>Sat, 12 Feb 2011 12:12:00 +0800</pubDate><description><![CDATA[    TTS(text-to-speech)，语音合成，可以将一段文字转化为语音。有关TTS想了解更多可以访问：http://en.wikipedia.org/wiki/Speech_synthesis。Windows有屏幕朗读的功能，如何使用系统自带的语音合成技术，想知道吗，那就继续往下读吧。
    打开VS新建一个C#工程，添加References，在Com栏目下选择Microsoft Speech Object Library（如果找不到，说明没有安装，到网上搜搜，安装一个）。完了之后，在Ref]]></description><category></category></item><item><title><![CDATA[Lua与CSharp间的通信]]></title><link>https://blog.youkuaiyun.com/yangjun111122/article/details/6179190</link><guid>https://blog.youkuaiyun.com/yangjun111122/article/details/6179190</guid><author>yangjun111122</author><pubDate>Fri, 11 Feb 2011 07:36:00 +0800</pubDate><description><![CDATA[准备工作         在C#中使用Lua脚本，需要用到Luainterface。Luainterface是Lua的C#封装，它是一个开源的项目，SVN地址为：http://luainterface.googlecode.com/svn/trunk。  C#代码中调用Lua函数  Lua代码（保存为路径c:/test.lua），定义了函数add：                       function add(num1,num2)              return num1+num2;    ]]></description><category></category></item><item><title><![CDATA[防止IDA逆向工程的花指令。]]></title><link>https://blog.youkuaiyun.com/yangjun111122/article/details/6074468</link><guid>https://blog.youkuaiyun.com/yangjun111122/article/details/6074468</guid><author>yangjun111122</author><pubDate>Tue, 14 Dec 2010 01:29:00 +0800</pubDate><description><![CDATA[<br />发现，要使IDA的反汇编失败的最简单花指令，就是在c/c++的函数里头使用retn指令。例如：<br />#include <stdio.h>
#include <stdlib.h>

#pragma auto_inline(off)
int __stdcall Proc(int n)
{
	char* strParam = "A test to inspect stack, n=%d, a=%d.";
	int a = n;
	__asm 
	{
		push label;]]></description><category></category></item><item><title><![CDATA[无光驱安装redhat企业版]]></title><link>https://blog.youkuaiyun.com/yangjun111122/article/details/6055498</link><guid>https://blog.youkuaiyun.com/yangjun111122/article/details/6055498</guid><author>yangjun111122</author><pubDate>Sat, 04 Dec 2010 23:51:00 +0800</pubDate><description><![CDATA[<br />       终于把redhat企业版给装上了，其间差点就去买个刻录机了。现在和大家分享下如何无光驱安装redhat企业版。<br />下载Universal-USB-Installer.exe，选择try some other live linux ISO。选择镜像文件，和U盘（U盘要够大，我用8G的），记得选择格式化。待Universal-USB-Installer.exe将镜像解压到U盘后，把镜像文件和image底下的initrd.img也拷到U盘根目录底下。<br />      然后重]]></description><category></category></item><item><title><![CDATA[unicode工程下，标准库保存unicode字符到文件]]></title><link>https://blog.youkuaiyun.com/yangjun111122/article/details/5668741</link><guid>https://blog.youkuaiyun.com/yangjun111122/article/details/5668741</guid><author>yangjun111122</author><pubDate>Sun, 13 Jun 2010 11:36:00 +0800</pubDate><description><![CDATA[<br />标准c++库的文件操作，没有把生成unicode文件的方法，保存在文件里的都是多字节。需要将unicode中文写入文件，需要转换为多字节，否则写入失败<br />basic_ofstream<wchar_t> os(L"c://output.txt");<br />wchar_t wcs[] = L"杨俊";<br />os.imbue(locale("chs"));//没有这句，写入中文会失败<br />os<<wcs;<br />os.close();]]></description><category></category></item><item><title><![CDATA[标准库下的宽字符转unicode]]></title><link>https://blog.youkuaiyun.com/yangjun111122/article/details/5668723</link><guid>https://blog.youkuaiyun.com/yangjun111122/article/details/5668723</guid><author>yangjun111122</author><pubDate>Sun, 13 Jun 2010 11:29:00 +0800</pubDate><description><![CDATA[<br />_tsetlocale(LC_ALL, _T("chs")); //设置为简体中文<br />wchar_t * wstr =  L"杨俊";<br />char mbstr[10] = {0};<br />wcstombs(mbstr, wstr, sizeof(mbstr));]]></description><category></category></item><item><title><![CDATA[类型转换后发生的内存泄漏]]></title><link>https://blog.youkuaiyun.com/yangjun111122/article/details/4914615</link><guid>https://blog.youkuaiyun.com/yangjun111122/article/details/4914615</guid><author>yangjun111122</author><pubDate>Tue, 01 Dec 2009 14:41:00 +0800</pubDate><description><![CDATA[进行如下的操作 struct THREADPARAM{    CString m_csGamePath;    CString m_csOutputPath;    volatile BOOL* m_pbStop;};THREADPARAM* pThreadParam = new THREADPARAM;LPVOID pParam = (LPVOID)pTh]]></description><category></category></item><item><title><![CDATA[VS2008输出的调试信息双击能够定位到行]]></title><link>https://blog.youkuaiyun.com/yangjun111122/article/details/4873731</link><guid>https://blog.youkuaiyun.com/yangjun111122/article/details/4873731</guid><author>yangjun111122</author><pubDate>Wed, 25 Nov 2009 21:05:00 +0800</pubDate><description><![CDATA[_RPTn函数，格式化的时候使用"%hs(%d)/n", filename, line。 关键的几点：文件和行号要参数要放在可变参数的第一位输出换行后才有效注意%hs(%d)的搭配使用 ]]></description><category></category></item><item><title><![CDATA[内存DC，CBitmap的问题]]></title><link>https://blog.youkuaiyun.com/yangjun111122/article/details/4789918</link><guid>https://blog.youkuaiyun.com/yangjun111122/article/details/4789918</guid><author>yangjun111122</author><pubDate>Mon, 09 Nov 2009 15:07:00 +0800</pubDate><description><![CDATA[ CDC memDC;memDC.CreateCompatibleDC(pDC);CBitmap bitmap;bitmap.CreateCompatibleBitmap(pDC, m_pImage->GetWidth(), m_pImage->GetHeight());//没问题//bitmap.CreateCompatibleBitmap(&memDC, m_pImag]]></description><category></category></item><item><title><![CDATA[vs 2008 类的结构]]></title><link>https://blog.youkuaiyun.com/yangjun111122/article/details/4677751</link><guid>https://blog.youkuaiyun.com/yangjun111122/article/details/4677751</guid><author>yangjun111122</author><pubDate>Thu, 15 Oct 2009 23:37:00 +0800</pubDate><description><![CDATA[ 在类A有虚函数f1与f3，数据成员int a，类B继承自A，有虚函数f1与f2，数据成员 int b，结构如下图所示：                         class A                          虚函数表 A虚函数表A的地址     int a                      ]]></description><category></category></item><item><title><![CDATA[static_cast]]></title><link>https://blog.youkuaiyun.com/yangjun111122/article/details/4645088</link><guid>https://blog.youkuaiyun.com/yangjun111122/article/details/4645088</guid><author>yangjun111122</author><pubDate>Fri, 09 Oct 2009 11:31:00 +0800</pubDate><description><![CDATA[static_cast 除了能进行基本类型的转换，也可以进行类指针间的转换，与reinterpret_cast的区别在于，两个进行相互转化的类指针要有有关联（有继承关系）和dynamic_cast是有区别的，它不进行RTC，因而转化的结果可能是不安全的。 ]]></description><category></category></item><item><title><![CDATA[虚函数]]></title><link>https://blog.youkuaiyun.com/yangjun111122/article/details/4644788</link><guid>https://blog.youkuaiyun.com/yangjun111122/article/details/4644788</guid><author>yangjun111122</author><pubDate>Fri, 09 Oct 2009 10:34:00 +0800</pubDate><description><![CDATA[虚函数根据对象类型调用相应的类中的函数，注意在基类构造函数中，派生类尚未出现，这是this指针还是基类的，调用的虚函数也是基类的]]></description><category></category></item><item><title><![CDATA[std vector]]></title><link>https://blog.youkuaiyun.com/yangjun111122/article/details/4643382</link><guid>https://blog.youkuaiyun.com/yangjun111122/article/details/4643382</guid><author>yangjun111122</author><pubDate>Thu, 08 Oct 2009 21:20:00 +0800</pubDate><description><![CDATA[ std vector 中的成员函数 pop_back   删除末尾的元素，如果被删除的元素是类对象，就对它进行销毁，如果删除的元素是指针，则不销毁]]></description><category></category></item><item><title><![CDATA[关于拼音检索字符]]></title><link>https://blog.youkuaiyun.com/yangjun111122/article/details/4607514</link><guid>https://blog.youkuaiyun.com/yangjun111122/article/details/4607514</guid><author>yangjun111122</author><pubDate>Mon, 28 Sep 2009 18:05:00 +0800</pubDate><description><![CDATA[比如输入G 就能显示出拼音以G打头的汉字.实现思路：根据GB2312汉字的区位码，建立区位码与拼音的对应关系，因为一定范围内的汉字区位码的拼音是一样的，例如，如果汉字的区位码在(20317,20319]范围内，那么其拼音为“a”，以此类推。 如果是Unicode转换为GB2312即可。 ps：道听途说，未经验证，实现]]></description><category></category></item><item><title><![CDATA[GetAsyncKeyState 与 GetKeyState ]]></title><link>https://blog.youkuaiyun.com/yangjun111122/article/details/4593271</link><guid>https://blog.youkuaiyun.com/yangjun111122/article/details/4593271</guid><author>yangjun111122</author><pubDate>Fri, 25 Sep 2009 11:11:00 +0800</pubDate><description><![CDATA[GetKeyState 获得消息队列中的按键消息返回值为 负 按键被按下对于caps Lock 返回值为1标示打开，与信号灯的状态一致 GetAsyncKeyState获得硬件的按键信息SHORT sKeyState = GetAsyncKeyState(VK_LBUTTON);sKeyState (sKeyState & 1) && (sKeyState > 0) /]]></description><category></category></item><item><title><![CDATA[std::string 的构造函数]]></title><link>https://blog.youkuaiyun.com/yangjun111122/article/details/4587370</link><guid>https://blog.youkuaiyun.com/yangjun111122/article/details/4587370</guid><author>yangjun111122</author><pubDate>Thu, 24 Sep 2009 10:15:00 +0800</pubDate><description><![CDATA[std::string 的构造函数 __CLR_OR_THIS_CALL basic_string(const _Elem *_Ptr)会开辟新的内存空间，将_Ptr拷贝到新的空间里，因而下面的写法是错误 char* GetValue(){   string s("Hello");   return s.c_str();} int main(){   c]]></description><category></category></item></channel></rss>