摘要: 一、warning LNK4089vc编译时Debug版本下没问题,release版本下出现如下警告: LINK : warning LNK4089: all references to “ODBC32.dll” discarded by /OPT:REF LINK : warning LNK4089: all references to “ADVAPI32.dll” discarded by /OPT:REF LINK : warning LNK4089: all references to “SHELL32.dll” discarded by /OPT:REF LINK : warning 阅读全文
posted @ 2013-05-23 15:27 MMLoveMeMM 阅读(1388) 评论(0) 推荐(0)
摘要: 创建或打开工程Icon(以下都以工程名为Icon为例)。 单击Workspace窗口的ResourceView标签,选中资源ID为IDR_MAINFRAME图标资源,然后按Delete键把它删除掉。注意:一定要把它删除才行。 从Developer Studio的Insert菜单中选择Resource,然后选择Icon,新建(New)一个新的图标或导入(Import)一个已有的图标。 把新图标的资源ID改为AFX_IDI_STD_MDIFRAME(如果是MDI应用程序)或改为AFX_IDI_STD_FRAME(如果是SDI应用 程序)。AFX_IDI_STD_MDIFRAME和AFX_IDI_S 阅读全文
posted @ 2013-05-23 00:46 MMLoveMeMM 阅读(560) 评论(0) 推荐(0)
摘要: VC++[MFC]// 第一个参数是将要替换图标的exe文件路径,第二个参数是替换的ico文件路径void ReplaceExeIco(LPCTSTR lpszApp, LPCTSTR lpszIco){try{ CFile file; file.Open(lpszIco, CFile::modeRead); LONG lOffset = 0; DWORD dwSize = 0; DWORD dwBytes = 0; CONST BYTE bGroupIcoSize = 0x18; BYTE* lpGroupIco = new BYTE[bGroupIcoSize]; memset(lpGro 阅读全文
posted @ 2013-05-23 00:27 MMLoveMeMM 阅读(629) 评论(0) 推荐(0)
摘要: 1. 使用_access函数,函数原型为 int _access( const char *path, int mode );2. 使用CreateFile函数,函数原型为: HANDLE CreateFile( LPCTSTR lpFileName, // pointer to name of the file DWORD dwDesiredAccess, // access (read-write) mode DWORD dwShareMode, // share mode LPSECURITY_ATTRIBUTES lpSecurityAttributes, // pointer to 阅读全文
posted @ 2013-05-22 23:14 MMLoveMeMM 阅读(347) 评论(0) 推荐(0)
摘要: 终止线程 有两种情况可以使线程结束:控制函数结束或者根本就不允许线程完成,而提前终止它。我们可以想象在WORD中进行后台打印,如果打印结束了,那线程就可以结束了。如果用户中止了打印,那后台打印线程也要终止了。本文将主要介绍对这两种情况的实现,并且介绍如何获得线程的结束代码。 对于工作线程,结束它是比较容易的:退出线程函数然后返回一个结束原因的代码就是了。用户可以使用AfxEndThread函数或直接利用return返回。通常0代表成功返回,这不是硬性规定,一切要取决于你了。对于用户界面线程,调用::PostQuitMessage,它所要的唯一的参数就是返回代码,也就是工作线程中的那个码,性质是 阅读全文
posted @ 2013-05-22 00:35 MMLoveMeMM 阅读(3474) 评论(0) 推荐(0)
摘要: 关键词: MFC 1、消息处理和消息映射的概念 2、消息种类 3、常用消息 4、消息处理函数 5、消息映射 所有windows应用程序都是消息驱动的,消息处理是所有windows应用程序的核心部分。当用户单击鼠标或改变窗口大小时,都将给适当的窗口发送消息。每个消息都对应于某个特定的事件。一、消息处理和消息映射的概念1、消息 消息主要指由用户操作而向应用程序发出的信息,也包括操作系统内部产生的消息。例如,单击鼠标左按钮,windows将产WM_LBUTTONDOWN消息,而释放鼠标左按钮将产生WM_LBUTTONUP消息,按下键盘上的字母键,将产生WM_CHAR消息。2、windows消息... 阅读全文
posted @ 2013-05-22 00:11 MMLoveMeMM 阅读(557) 评论(0) 推荐(0)
摘要: 一般情况下,调用AfxBeginThread()来一次性地创建并启动一个线程,但是也可以通过两步法来创建线程:首先创建CWinThread类的一个 对象,然后调用该对象的成员函数CreateThread()来启动该线程。 virtual BOOL CWinThread::InitInstance(); 重载该函数以控制用户界面线程实例的初始化。初始化成功则返回非0值,否则返回0。用户界面线程经常重载该函数,工作者线程一般不 使用InitInstance()。 virtual int CWinThread::ExitInstance(); 在线程终结前重载该函数进行一些必要的清理工作... 阅读全文
posted @ 2013-05-21 11:14 MMLoveMeMM 阅读(1598) 评论(0) 推荐(0)
摘要: 有两种方法:1. 单线程解决:OnBtn1(){ while(m_bLoop) { your code.... // 派发消息 MSG msg; if (PeekMessage(&msg,(HWND)NULL, 0, 0, PM_REMOVE)) { ::SendMessage(msg.hwnd, msg.message, msg.wParam, msg.lParam); } }}OnBtn2(){ m_bLoop = FALSE;}2. 多线程 (参考:http://www.vckb... 阅读全文
posted @ 2013-05-21 00:35 MMLoveMeMM 阅读(3532) 评论(0) 推荐(0)
摘要: <1> : 静态文本框字体设置:下面可以在oninitdialog中设置:CFont cfont;//全局变量cfont.CreateFont(68, //这个数字就是字体大小了 0,0,0,FW_BOLD, FALSE,FALSE, 0, ANSI_CHARSET, // nCharSet OUT_DEFAULT_PRECIS, // nOutPrecision CLIP_DEFAULT_PRECIS, // nClipPrecision DEFAULT_QUALITY, // nQuality DEFAULT_PITCH | FF_SWISS, "Arial" 阅读全文
posted @ 2013-05-20 20:16 MMLoveMeMM 阅读(166) 评论(0) 推荐(0)
摘要: CTime( ) throw( );CTime( __time64_t time) throw( );CTime( int nYear, int nMonth, int nDay, int nHour, int nMin, int nSec, int nDST = -1 );CTime( WORD wDosDate, WORD wDosTime, int nDST = -1 );CTime( const SYSTEMTIME& st, int nDST = - 1 ) throw( );CTime( const FILETIME& ft, int nDST = - 1 );CT 阅读全文
posted @ 2013-05-20 19:23 MMLoveMeMM 阅读(316) 评论(0) 推荐(0)
摘要: 参考:http://www.cnblogs.com/chuncn/archive/2009/03/12/1409261.htmlCTime类1.构造和初始化CTime类对象CTime类有下列构造函数:CTime( );CTime( const CTime& timeSrc );CTime( time_t time );CTime( int nYear, int nMonth, int nDay, int nHour, int nMin, int nSec, int nDST = -1 );CTime( WORD wDosDate, WORD wDosTime, int nDST = - 阅读全文
posted @ 2013-05-20 19:22 MMLoveMeMM 阅读(565) 评论(0) 推荐(0)
摘要: 3种方法:1、在一个cpp文件中用extern声明,然后在其他文件中定义就可以用2、在**APP类中做公有变量,其他类中用AfxGetApp()得到一个App对象指针就可引用 3、专门写一个全局类,里边的变量及方法全部声明为静态具体说明如下(来自网络):最好在.cpp 中声明,如果其它文件用到这个变量,就用extern 就行了 1.cpp int x ; …… 2.cpp (用到了1.cpp 的 x) extern x; …… 这样,你在2文件中就可以把 X 当全局变量来用了 -------------------------------------------------... 阅读全文
posted @ 2013-05-20 19:21 MMLoveMeMM 阅读(810) 评论(0) 推荐(0)
摘要: c++中输出和输入导屏幕和键盘的类别声明包含再标题文件<iostrream.h>中,而磁盘类文件的I/O则声明再包含标题文件<fstream.h>内。输入和输出格式:输出到磁盘ofsteam 识别字(“文件名”)从磁盘读文件ifsteam 识别字("文件名“)例如:ofstream outfile("data.txt"); //写入到磁盘的data.txt中格式化输入输出:1 整数数据的输入输出整数数据存储再磁盘内,每个文字各占一个字节。例如:#include <fstream.h>#include <iostream.h 阅读全文
posted @ 2013-05-15 11:57 MMLoveMeMM 阅读(930) 评论(0) 推荐(0)
摘要: 函数指针是通过指向函数的指针间接调用函数。函数指针可以实现对参数类型、参数顺序、返回值都相同的函数进行封装,是多态的一种实现方式。由于类的非静态成员函数中有一个隐形的this指针,因此,类的成员函数的指针和一般函数的指针的表现形式不一样。1、指向一般函数的指针函数指针的声明中就包括了函数的参数类型、顺序和返回值,只能把相匹配的函数地址赋值给函数指针。为了封装同类型的函数,可以把函数指针作为通用接口函数的参数,并通过函数指针来间接调用所封装的函数。下面是一个指向函数的指针使用的例子。#include <iostream.h>/*指向函数的指针*/typedef int (*pFun) 阅读全文
posted @ 2013-05-15 11:46 MMLoveMeMM 阅读(398) 评论(0) 推荐(0)
摘要: CString::MakeUppervoid MakeUpper( );Remarks备注Converts this CString object to an uppercase string.将原对象的所有小写英文字母转换为大写。(只是将小写的英文字母转换为大写,对于其它的字符不做变化,例如:大写字符,数字,汉字)Example实例The following example demonstrates the use of CString::MakeUpper.// example for CString::MakeUpperCString s( "abc" );s.Mak 阅读全文
posted @ 2013-05-14 20:09 MMLoveMeMM 阅读(417) 评论(0) 推荐(0)
摘要: BSTR、char*和CString转换 (1) char*转换成CString 若将char*转换成CString,除了直接赋值外,还可使用CString::Format进行。例如:char chArray[] = "This is a test"; char * p = "This is a test"; 或LPSTR p = "This is a test"; 或在已定义Unicode应的用程序中TCHAR * p = _T("This is a test"); 或LPTSTR p = _T("Th 阅读全文
posted @ 2013-05-14 17:59 MMLoveMeMM 阅读(178) 评论(0) 推荐(0)
摘要: 在MFC程序中输出调试信息的方法有两种,一种是使用TRACE宏,可以向Output窗口输出调试信息;另一种是用MessageBox,弹出消息框来输出调试信息,但会影响程序的运行。其实有一种方法可以更为方便的输出调试信息,就是输出到控制台(Console)中,即不影响程序运行,又便于查看调试信息。方法如下:无论下面的的操作和写法如何的犀利,个人推荐最简单快捷的方式:AllocConsole();// 打开控制台资源freopen( "CONOUT$", "w+t", stdout );// 申请写freopen( "CONIN$", & 阅读全文
posted @ 2013-05-14 17:53 MMLoveMeMM 阅读(3521) 评论(0) 推荐(0)
摘要: 最近学数据结构老是做实验常用到字符串和数字的转换想找却发现网上的资料太散所以搜集整理一下 方便以后再用atof(将字符串转换成浮点型数)atoi(将字符串转换成整型数)atol(将字符串转换成长整型数)strtod(将字符串转换成浮点数)strtol(将字符串转换成长整型数)strtoul(将字符串转换成无符号长整型数)toascii(将整型数转换成合法的ASCII 码字符)toupper(将小写字母转换成大写字母)tolower(将大写字母转换成小写字母) atof(将字符串转换成浮点型数)相关函数 atoi,atol,strtod,strtol,strtoul表头文件 #include & 阅读全文
posted @ 2013-05-13 18:22 MMLoveMeMM 阅读(272) 评论(0) 推荐(0)
摘要: (1) getch()和getche()函数 这两个函数都是从键盘上读入一个字符。其调用格式为: getch(); getche(); 两者的区别是: getch()函数不将读入的字符回显在显示屏幕上, 而getche() 函数却将读入的字符回显到显示屏幕上。 例1: #include<stdio.h> main() { char c, ch; c=getch(); /*从键盘上读入一个字符不回显送给字符变量c*/ putchar(c); /*输出该字符*/ ch=getche(); /*从键盘上带回显的读入一个字符送给字符变量ch*/ putchar(ch); }... 阅读全文
posted @ 2013-05-13 18:21 MMLoveMeMM 阅读(478) 评论(0) 推荐(0)
摘要: 如果你想打开一个USB管道,你首先要知道这种USB设备的GUID和管理道名称,获取句柄以后就可以使用ReadFile/WriteFile进行读写了!以下是代码,请参考!!// filename是管道名称,如pipe01等int CUSBImpObject::open_file( char *filename){int successOpened = 0,i;int NumOpened;HANDLE h;NumOpened=OpenAllUsbDevices((LPGUID) &GUID_CLASS_I82930_BULK); if(NumOpened<=0) return 0; 阅读全文
posted @ 2013-05-09 19:02 MMLoveMeMM 阅读(373) 评论(0) 推荐(0)
摘要: 运行第一个module<1> : 在ubuntu系统,编译模块,将模块拷贝到U盘,或者先放入与windows XP共享盘,然后拷贝到U盘,或者上传方式到nft服务器.<2> : 将U盘插入嵌入式系统,需要重新镜像U盘[root@Root /]# cat /proc/partitionsmajor minor #blocks name 31 0 512 mtdblock0 31 1 2048 mtdblock1 31 2 257280 mtdblock2 8 16 4101120 sdb 8 17 4101088 sdb1[root@Root /]# mount /dev 阅读全文
posted @ 2013-05-09 18:23 MMLoveMeMM 阅读(127) 评论(0) 推荐(0)
摘要: 利用U盘导入程序到系统<1> : 将有U盘插入linux系统,利用命令挂在U#mount /dev/sda1 /mnt怎么样知道是sda1,而不是sda2…在挂载之前先输入命令查看:#cat /proc/partitions例如[root@Root /]# cat /proc/partitionsmajor minor #blocks name 31 0 512 mtdblock0 31 1 2048 mtdblock1 31 2 257280 mtdblock2 8 0 4101120 sda 8 1 4101088 sda1<2> : 当输入挂载命令后,发现终端提示 阅读全文
posted @ 2013-05-09 18:21 MMLoveMeMM 阅读(481) 评论(0) 推荐(0)
摘要: ForewordTable of Contents作者声明版本和注意感谢译者注作者声明《Linux内核驱动模块编程指南》最初是由Ori Pomerantz为2.2版本的内核编写的 ,后来,Ori将文档维护的任务交给了PeterJay Salzman,Peter完成了2.4内核版本文档的编写,毕竟Linux内核驱动模块是一个更新很快的内容。现在,Peter也无法腾出足够的时间来完成2.6内核版本文档的编写,目前该2.6内核版本的文档由合作者Michael Burian 完成。版本和注意Linux内核模块是一块不断更新进步的内容,在LKMPG上总有关于是否保留还是历史版本的争论。Michael和我 阅读全文
posted @ 2013-05-08 16:41 MMLoveMeMM 阅读(1445) 评论(0) 推荐(0)
摘要: C/C++语言中的main函数,经常带有参数argc,argv,如下:int main(int argc, char** argv)int main(int argc, char* argv[])这两个参数的作用: argc 是指命令行输入参数的个数(以空白符分隔) argv存储了所有的命令行参数假如你的程序是hello.exe,如果在命令行运行该程序,(首先应该在命令行下用 cd 命令进入到 hello.exe 文件所在目录) 运行命令为:hello.exe Shiqi Yu那么,argc的值是 3,argv[0]是"hello.exe",argv[1]是"Sh 阅读全文
posted @ 2013-05-07 11:56 MMLoveMeMM 阅读(402) 评论(0) 推荐(0)
摘要: C++实现FFT算法#include "iostream.h"#include "stdio.h"#include "math.h"#include "stdlib.h"#include "malloc.h"#define PI (float)3.1415926//复数结构体typedef struct{ float re; float im;}complex;//定义旋转因子complex W(int N,int n){ complex out; out.re=(float)cos(2*PI* 阅读全文
posted @ 2013-05-07 00:23 MMLoveMeMM 阅读(2079) 评论(0) 推荐(0)
摘要: 今天验证FFT算法,需要产生一批数据,进行人为输入有点不切实际,所以就想到使用随机数进行产生.C语言/C++怎样产生随机数:这里要用到的是rand()函数, srand()函数,C语言/C++里没有自带的random(int number)函数。(1) 如果你只要产生随机数而不需要设定范围的话,你只要用rand()就可以了:rand()会返回一随机数值, 范围在0至RAND_MAX 间。RAND_MAX定义在stdlib.h, 其值为2147483647.Demo程序如下:#include<stdio.h>#include<stdlib.h>void main(){in 阅读全文
posted @ 2013-05-06 22:55 MMLoveMeMM 阅读(488) 评论(0) 推荐(0)
摘要: Linux 下使用数学函数今天在编译一个用到log函数的c文件时,遇到一个错误:/tmp/ccQuh0ns.o(.text+0x2bb): In function `Compute':: undefined reference to `log'到网上查了一下这个问题,原因及解决方法如下:出现这个错误是因为编译器找不到log的具体实现.虽然我们包括了正确的头文件,但是我们在编译的时候还是要连接确定的库.在Linux下,为了使用数学函数,我们必须和数学库连接,为此我们要加入 -lm 选项。gcc select.c -o select -lm这样就搞定了!<artcle fro 阅读全文
posted @ 2013-05-06 18:02 MMLoveMeMM 阅读(1748) 评论(0) 推荐(0)
摘要: 常常发现一个程序启动后,再想启动同样的这个程序,它会提示程序已经启动,其中一个典型的PPS播放器,它可以设置可以打开多个PPS播放器,也可以设置只能够启动一个PPS播放器.只能够启动一个实现如下#include<windows.h>#include<iostream.h>DWORD WINAPI FuncOne(LPVOID lpParameter);DWORD WINAPI FuncTwo(LPVOID lpParameter);void main(){HANDLE hThreadone;HANDLE hThreadtwo;HANDLE hMutex;hMutex=C 阅读全文
posted @ 2013-05-03 11:26 MMLoveMeMM 阅读(140) 评论(0) 推荐(0)
摘要: 关键代码段在很多硬件系统(比如Linux,ucOS等等)也存在,只是系统开发用于来保护现场,根据上Demo,更改如下:#include<windows.h>#include<iostream.h>DWORD WINAPI FuncThreadone(LPVOID lpParameter);DWORD WINAPI FuncThreadTwo(LPVOID lpParameter);int index=0;int tickets=100;HANDLE hMutex;HANDLE m_hEvent;CRITICAL_SECTION g_cs;void main(){HAND 阅读全文
posted @ 2013-05-02 16:59 MMLoveMeMM 阅读(135) 评论(0) 推荐(0)
摘要: 首先分析要使用到的几个API函数:This function creates a named or an unnamed event object.HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState, LPTSTR lpName ); ParameterslpEventAttributes[in] Ignored. Must be NULL.如果忽略,必须设置为NULLbManualReset[in] Boolean that spec... 阅读全文
posted @ 2013-05-02 16:50 MMLoveMeMM 阅读(278) 评论(0) 推荐(0)
摘要: 首先按照正常的举出一Demo,如下:#include<windows.h>#include<iostream.h>DWORD WINAPI FuncThreadone(LPVOID lpParameter);DWORD WINAPI FuncThreadTwo(LPVOID lpParameter);int index=0;int tickets=100;void main(){HANDLE hThread1,hThread2;hThread1=CreateThread(NULL,0,FuncThreadone,NULL,0,NULL);hThread2=CreateT 阅读全文
posted @ 2013-05-02 16:11 MMLoveMeMM 阅读(374) 评论(0) 推荐(0)
摘要: 首先查看一下MSDN几个和多线程有关的API函数:This function creates a thread to execute within the address space of the calling process.HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpsa, DWORD cbStack, LPTHREAD_START_ROUTINE lpStartAddr, LPVOID lpvThreadParam, DWORD fdwCreate, LPDWORD lpIDThread); Parameterslps... 阅读全文
posted @ 2013-05-02 15:32 MMLoveMeMM 阅读(202) 评论(0) 推荐(0)
摘要: ContentsIntroductionC Language ApproachHandlesCalling ConventionsException SafetyAdvantagesDisadvantagesC++ Naive Approach: Exporting a ClassWhat You See Is Not What You GetException SafetyAdvantagesDisadvantagesC++ Mature Approach: Using an Abstract InterfaceHow This WorksWhy This Works With Other 阅读全文
posted @ 2013-04-28 16:53 MMLoveMeMM 阅读(482) 评论(0) 推荐(0)
摘要: This article shows you how to create a Win32 and MFC DLL to dynamically link a Library to your application. Microsoft Foundation Class (MFC) library can be used to create simplified DLLs. The MFC supports two types of DLLs, regular and extension:Regular DLL using shared MFC DLLRegular DLL with MFC s 阅读全文
posted @ 2013-04-28 15:43 MMLoveMeMM 阅读(270) 评论(0) 推荐(0)
摘要: VC多线程编程(转)VC中多线程使用比较广泛而且实用,在网上看到的教程.感觉写的挺好.一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下:voidCSingleThreadDlg::OnSleepSixSecond(){Sleep(6000);//延时6秒} 编译并运行应用程序,单击“延时6秒”按钮,你就会发现在这6秒期间程序就象“死机”一样,不在响应其它消息。为了更好地处理这种耗.. 阅读全文
posted @ 2013-04-21 14:14 MMLoveMeMM 阅读(142) 评论(0) 推荐(0)
摘要: 进一步再举一例:本例要实现一个绘制一个椭圆形功能<1> : 根据前一篇"vs2010 MFC DLL创建和调用"文章新建MFC Dll工程,假设工程名CMFCDLLDemo02;<2> : 在CMFCDLLDemo02.h中添加:#include "resource.h"// main symbols// CCMFCDLLDemo02App// See CMFCDLLDemo02.cpp for the implementation of this class//extern "C" void PASCAL E 阅读全文
posted @ 2013-04-21 13:31 MMLoveMeMM 阅读(337) 评论(0) 推荐(0)
摘要: 下面写一个用DLL访问注册表的程序:步骤如下:<1> : 新建一个DLL 工程:程序如下:#include<afx.h>#include"dll5.h"_declspec(dllexport) void _stdcall WriteToWinfile(LPCTSTR appname,LPCTSTR keyname,LPCTSTR str){ WriteProfileString(appname,keyname,str);}_declspec(dllexport) void _stdcall ReadFromWinFile(LPCTSTR appnam 阅读全文
posted @ 2013-04-21 00:02 MMLoveMeMM 阅读(203) 评论(0) 推荐(0)
摘要: WIN32 DLL创建动态链接库.步骤如下:<1> : 先开发一个DLL动态链接库:程序如下:#include<afx.h>_declspec(dllexport) void _stdcall WriteToWinfile(LPCTSTR appname,LPCTSTR keyname,LPCTSTR str){ WriteProfileString(appname,keyname,str);}_declspec(dllexport) void _stdcall ReadFromWinFile(LPCTSTR appname,LPCTSTR keyname,LPCTST 阅读全文
posted @ 2013-04-21 00:01 MMLoveMeMM 阅读(320) 评论(0) 推荐(0)
摘要: <1> :每点对应的实际幅度等于fft后对应点实部和虚部的平方根再乘以2/N,N是采样点数,不过直流分量即第一点须除N幅值:(假设你只须分析x次以下谐波)for(i=0;i<x;i++){W[i]=sqrt(datar[i]*datar[i]+datai[i]*datai[i]);W[i]=W[i]*2/N;}W[0]=W[0]/2;功率谱密度P(f)=datar[i]*datar[i]+datai[i]*datai[i];功率P为P(f)从0到fs的积分;fs为你的采样频率;因为实数fft后会使原信号幅值翻N/2倍,直流分量即第一点翻N倍 我们要得到的一般是原信号的幅值 所 阅读全文
posted @ 2013-04-17 01:37 MMLoveMeMM 阅读(6771) 评论(0) 推荐(0)
摘要: 程序列如下:PublicFunctionfft(ByRefData()AsDouble)AsDouble() ReDimffft(128,2)AsDoubleDimlengthAsIntegerlength=UBound(Data,1)+1 'DimnumArray(length-1,2)AsDouble DimindexAsIntegerDimnum5AsIntegerDimnum6AsIntegerDimnum7AsIntegerDimnum10AsIntegerDimnum3AsIntegerDimnum2AsIntegerDimnum11AsIntegerDimnum9AsIn 阅读全文
posted @ 2013-04-17 01:14 MMLoveMeMM 阅读(823) 评论(0) 推荐(0)