摘要: 要点:1.如果数组的范围缩小了,超出部分会被清除掉,非基本类型也不会调用析构函数(内存泄漏)program MyArray; //数组{$APPTYPE CONSOLE}uses SysUtils,Windows;{数组成员丢失}procedure MyFunc3();var arr:array of array of string;begin setlength(arr,2,3); arr[1,2]:='田攀QQ382477247'; Writeln(arr[1,2]); {田攀QQ382477247} setlength(arr,0,0); //缩小数组 setleng.. 阅读全文
posted @ 2013-10-27 01:56 GOD攀 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 要点:1.Ptr函数相当于Pointer,强制转换为指针2.CopyMemory是内存复制,把第二个参数,赋值到第一个后面program MyArray; //数组{$APPTYPE CONSOLE}uses SysUtils,Windows;{合并2个动态数组}procedure MyFunc2();var arr1,arr2: TBytes; len,LastAddr: Integer;begin{设置2个数组长度} SetLength(arr1, 3); SetLength(arr2, 3);{给2个数组赋值} arr1[0] := 65; arr1[1] := 66; ar... 阅读全文
posted @ 2013-10-27 01:30 GOD攀 阅读(1586) 评论(0) 推荐(0) 编辑
摘要: 要点:1.TBytes和C++里面的数组一样,数组名就是数组的首地址。而array [..] of char 不是指针,需要用取地址符号读地址@2.要获取TBytes某个元素位置的指针, 应该是 @MyTByteArr[x]; 但随着数组的再分配, 这个地址是变化的3.SetLength设置数组长度4.Ord是取字符对应的数字program MyArray; //数组{$APPTYPE CONSOLE}uses SysUtils;{用指针读取数组某个元素}procedure MyFunc1();var i: Integer; p: PByte; MyTByteArr: TBytes;/... 阅读全文
posted @ 2013-10-27 01:13 GOD攀 阅读(1501) 评论(0) 推荐(0) 编辑
摘要: 要点:1.在内层函数使用TList的时候,也需要Create创建2.使用完毕之后,要记得Free3.一个函数是可以写在另外一个函数里面的program MyPoint; //指针详解{$APPTYPE CONSOLE}uses SysUtils,windows,Generics.Collections ;{函数返回TList}procedure MyFunc11(); function TemFunc():TList; var MyList : TList; begin MyList := TList.Create; MyList.Add(3... 阅读全文
posted @ 2013-10-26 23:24 GOD攀 阅读(1023) 评论(0) 推荐(0) 编辑
摘要: 要点:1.使用TList的时候,首先要用TList.Create初始化2.TList成员函数Add是增加一项,Count是获取项数3.函数里面用到了Var,来直接操作外层函数的TList。program MyPoint; //指针详解{$APPTYPE CONSOLE}uses SysUtils,windows,Generics.Collections ;{函数var参数TList}Procedure MyFunc10();{插入函数} procedure TemFunc(var TheList : TList); begin TheList.Add(1); ... 阅读全文
posted @ 2013-10-26 23:17 GOD攀 阅读(854) 评论(0) 推荐(0) 编辑
摘要: 要点:1.给函数传入一个Var的数组变量,然后在函数里面设置数组长度,然后按需要返回。2.Low是取数组的下标最小的成员,High是取数的先最大的成员program MyPoint; //指针详解{$APPTYPE CONSOLE}uses SysUtils,windows,Generics.Collections ;type TArray = array of string;//字符串数组{函数返回数组}procedure MyFunc9();{功能函数} procedure MyArrFunc(var MyArr : TArray); var i : in... 阅读全文
posted @ 2013-10-26 23:13 GOD攀 阅读(2729) 评论(0) 推荐(0) 编辑
摘要: 要点:1.其实链表,就是每个节点结构体里面多了2个指针,相当于这个节点的左手和右手,左手牵着上一个节点,右手牵着下一个节点。2.注意,需要单独弄个结构体,知道头节点和尾节点。然后头节点一直顺着右手,就可以找到尾节点,从而遍历所有的成员program MyPoint; //指针详解{$APPTYPE CONSOLE}uses SysUtils,windows,Generics.Collections ;{双向链表}procedure MyFunc8();type PNode = ^MyNode; //定义指针 MyNode = record //节点 Text: string;... 阅读全文
posted @ 2013-10-26 23:08 GOD攀 阅读(564) 评论(0) 推荐(0) 编辑
摘要: 要点:1.我用的Delphi2010,每个Char占2个字节2.指针+1,是加了指针所对应的数据类型的大小的字节。Char型就是+2字节,Integer型就是+4字节。program MyPoint; //指针详解{$APPTYPE CONSOLE}uses SysUtils,windows,Generics.Collections ;{指针与string}procedure MyFunc7();//返回值var MyStr: string; MyPointStr: PChar;//字符串指针 I: Integer; ABC : Char;//测试一下Char的长度begin M... 阅读全文
posted @ 2013-10-26 22:52 GOD攀 阅读(488) 评论(0) 推荐(0) 编辑
摘要: 要点:1.DLL用exports加函数名表示导出这个函数2.Assigned函数判断参数释放为nil,也就是是否存在3.LoadLibrary用来加载一个DLL文件,参数为完整路径(同一目录下,可只写DLL文件名)。使用完了,要记得用FreeLibrary关闭这个打开的句柄4.GetProcAddress判断dll中,是否存在某个导出的函数,返回值是这个函数的句柄。5.type PMyFunc = procedure (para : Integer); 表示定义了一个名字叫PMyFunc的过程,只有1个Integer型参数program MyPoint; //指针详解{$APPTYPE CO. 阅读全文
posted @ 2013-10-26 22:50 GOD攀 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 要点:1.数组名称要用@取地址才能作为地址, 与c++有点不同2.StrCopy函数是把第二个参数复制到第一个参数地址里面去3.StrCat函数是把第二个参数字符串内容,接到第一个参数地址后面program MyPoint; //指针详解{$APPTYPE CONSOLE}uses SysUtils,windows,Generics.Collections ;{指针和字符串}procedure MyFunc5();var str : array [1..50] of char; pstr : PChar; //Pchar 也就是 ^Charbegin StrCopy(@str, '田. 阅读全文
posted @ 2013-10-26 22:39 GOD攀 阅读(589) 评论(0) 推荐(0) 编辑
摘要: 要点:1.GetMem函数是分配内存,第二个参数为分配内存的字节长度2.MyPoint1增加之后,如果需要释放MyPoint1数组,就必须在之前定义MyPoint2保存MyPoint1,用来FreeMem3.指针释放之后,内存残留的数据,如果没有被其他地方修改,还是可以读出来的!program MyPoint; //指针详解{$APPTYPE CONSOLE}uses SysUtils,windows,Generics.Collections ;{动态分配指针长度}procedure MyFunc4();var MyPoint1, MyPoint2 : ^integer;//2个指针 ... 阅读全文
posted @ 2013-10-26 22:35 GOD攀 阅读(443) 评论(0) 推荐(0) 编辑
摘要: 要点:1.指针指向的内容的大小因数据类型的不同而不同,指针本事的大小,都是4字节2.sizeof函数是取形参所占的内存大小3.IntToHex是把整数型的值,转换为16进制的值,第二个参数是16进制的长度为多少位program MyPoint; //指针详解{$APPTYPE CONSOLE}uses SysUtils,windows,Generics.Collections ;{指针长度}procedure MyFunc3();var MyInt : Integer;//整数 MyPoint : PInteger; //定义指针 MyByte : Byte; MyPintByte... 阅读全文
posted @ 2013-10-26 22:31 GOD攀 阅读(750) 评论(0) 推荐(0) 编辑
摘要: 效果图如下:要点:1.指针指向的地址或许不一样,也不管指针是多少级的指针,他们指针本身都是一样的,都可以用PInteger来强转换。2.多级指针取地址,要用多个^,比如二级指针,需要PInteger(MyPint2^)^来取值program MyPoint; //指针详解{$APPTYPE CONSOLE}uses SysUtils,windows,Generics.Collections ;{多级指针}procedure MyFunc2();var MyInt : Integer;//整数 MyPint1 : PInteger; //1级指针 MyPint2 : ^Integer;... 阅读全文
posted @ 2013-10-26 22:26 GOD攀 阅读(369) 评论(0) 推荐(0) 编辑
摘要: 效果图如下:要点:1.指针的2中定义方法 PInteger 和 ^Integer2.取地址符号 @ 和 Addr函数3.取内容符号 ^ ,比如MyPointInt1^则是取MyPointInt1指针所指向的内容了。program MyPoint; //指针详解{$APPTYPE CONSOLE}uses SysUtils,windows,Generics.Collections ;{指针的定义和取值}procedure MyFunc1();var MyInt : Integer;//整数 MyPointInt1 : PInteger;//指针定义1 MyPointInt2 : ^In... 阅读全文
posted @ 2013-10-26 22:14 GOD攀 阅读(1068) 评论(0) 推荐(0) 编辑
摘要: ::SetWindowText(GetSafeHwnd(),"对话框新标题!"); 阅读全文
posted @ 2013-08-06 14:54 GOD攀 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 创建2个按钮事件和一个静态文本IDC_STATIC_TIME 1 void CMyTimeDlg::OnButton1() //按钮1 2 { 3 SetTimer(1,1000,NULL);//启动定时器1,定时时间是1秒 4 } 5 6 void CMyTimeDlg::OnButton2() //按钮2 7 { 8 KillTimer(1); //关闭定时器1。 9 }10 然后添加消息响应VM_TIMER11 void CMyTimeDlg::OnTimer(UINT nIDEvent) 12 {13 // TODO: Add y... 阅读全文
posted @ 2013-08-05 23:32 GOD攀 阅读(390) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2013-08-05 00:55 GOD攀 阅读(2) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2013-08-04 20:35 GOD攀 阅读(0) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2013-08-04 20:32 GOD攀 阅读(0) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2013-08-04 20:31 GOD攀 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 加密:CString Encrypt(CString S, WORD Key) // 加密函数{ CString Result,str; int i,j; Result=S; // 初始化结果字符串 for(i=0; i>8)); // 将密钥移位后与字符异或 Key = ((BYTE)Result.GetAt(i)+Key)*C1+C2; // 产生下一个密钥 } S=Result; // 保存结果 Result.Empty(); // 清除结果 for(i=0; i>8)); // 将密钥移位后与字符异或 ... 阅读全文
posted @ 2013-08-04 20:28 GOD攀 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 1.创建文件夹首先添加一下lib 1 #include //包含了大量的文本文件操作函数 2 void CMyFileTestDlg::OnButton1() //判断文件夹是否存在,不存在就创建文件夹 3 { 4 CString StrPath="c:\\test" ; 5 // 判断路径是否存在 6 if (!PathIsDirectory(StrPath) ) //判断是否存在 7 { 8 CString strMsg; 9 strMsg.Format("指定路径\"%s\"不存... 阅读全文
posted @ 2013-08-04 20:26 GOD攀 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 绝对路径是这样的:"E:\临时\田攀VC6.0教程\ListControl列表控件"相对路径是相对的:".\" —根目录。"..\" —代表上一层目录。"\" —当前根目录。"" —当前根目录。 阅读全文
posted @ 2013-08-04 20:12 GOD攀 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 1 CString MyDllAllPath="\\382477247.dll";//当前目录的"382477247.dll"2 char str[255];3 GetCurrentDirectory(255,str);//取当前运行目录4 MyDllAllPath = str +MyDllAllPath ; 阅读全文
posted @ 2013-08-04 20:08 GOD攀 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 1 int HexToDem(CString str)//十六进制转换10进制 2 { 3 str.Replace("0x",""); 4 int dem=0; 5 for(int i=0;i='0')) //0~9之间的字符 9 dem+=str[i]-'0';10 else if((str[i]='A')) //A~F之间的字符11 dem+=str[i]-'A'+10;12 else if((str[i]='a')) //a~f之间的字符13 ... 阅读全文
posted @ 2013-08-04 20:06 GOD攀 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 第一种,检测键盘状态 1 hThread=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)MyHokey,NULL,0,&ThreadID); 2 //////////////////////////////////////////////////////////////////////////////////////////////////// 3 DWORD WINAPI MyHokey (LPVOID pParam) 4 { 5 Tloop: 6 if(GetKeyState(VK_F1)vkCode == VK_F4)) {... 阅读全文
posted @ 2013-08-04 19:58 GOD攀 阅读(612) 评论(0) 推荐(0) 编辑
摘要: ExitProcess(NULL);PostQuitMessage(0); 阅读全文
posted @ 2013-08-04 19:53 GOD攀 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 1.取整数随机数 1 int GetRand(int MIN, int MAX)//产生随机数 2 { 3 int max; 4 max=RAND_MAX;//rand()函数随机数的最大值 5 return (int)(rand()*(MAX-MIN)/max+MIN); 6 } 7 8 void CMyTestTimeDlg::OnButton1() 9 {10 11 UpdateData(true);12 int m_Min = 2000;13 int m_Max = 3000;14 if(m_M... 阅读全文
posted @ 2013-08-04 19:48 GOD攀 阅读(4885) 评论(0) 推荐(0) 编辑
摘要: 第一步,安装MySql的windows32版本:必须完整完整才行安装完毕之后,我们用类向导写一个MFC对话框程序:给工程添加需要包含的头文件和lib文件个:tools->options->show directories for-> include files://头文件C:\PROGRAM FILES\MYSQL\MYSQL SERVER 5.0\INCLUDE//包含头文件tools->options->show directories for-> library files://库文件C:\PROGRAM FILES\MYSQL\MYSQL SERVE 阅读全文
posted @ 2013-08-04 17:39 GOD攀 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 第一步:我们新建一个MFC工程在StdAfx.h里面添加一下引用ADO控件1 //////access的头文件////////////////////////////////////////////////////////////////////2 #import "c:\Program Files\Common Files\System\ADO\msado15.dll" rename_namespace("ADO") rename("EOF","EndofFile") 3 #import "c:\Pro 阅读全文
posted @ 2013-08-04 11:29 GOD攀 阅读(526) 评论(0) 推荐(0) 编辑
摘要: 第一步:新建一个delphi控制台程序然后输入下面的这几句代码: 1 program Project2; 2 3 {$APPTYPE CONSOLE} 4 5 uses 6 SysUtils; 7 8 begin 9 { TODO -oUser -cConsole Main : Insert code here }10 //下面程序的开始11 Begin12 Writeln('田攀爱C++,更爱张颖!'); //输出一句话13 ReadLn; //输入14 End//程序结束了15 16 end. 阅读全文
posted @ 2013-08-04 01:21 GOD攀 阅读(188) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2013-08-04 00:31 GOD攀 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 注意啊:switch里面是可以加入选择事件的,如果为真,那么switch(真),case 1。 如果switch(假),case 0。注意,每一个case后面,有冒号:,而且要有break语句的 1 #include 2 using namespace std; 3 4 void main( ) 5 { 6 int a,b,c; 7 cin>>a>>b>>c; 8 switch(a)//第一层的switch 9 { 10 case 1: //第一层的case11 switch(b)12 {13 ... 阅读全文
posted @ 2013-08-04 00:00 GOD攀 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 我们来执行一个最简单的goto语句 1 #include 2 using namespace std; 3 int main() 4 { 5 cout 2 using namespace std; 3 int main() 4 { 5 int i = 1;//定义一个整数型i 6 ////////////////////////////////////////////////////////////////////////// 7 number: //定义一个标志位 8 i++; //i自己加1 i=23456789 9 cout ... 阅读全文
posted @ 2013-08-03 23:21 GOD攀 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 类向导,添加成员函数1 BOOL CSuperWebDlg::PreTranslateMessage(MSG* pMsg) 2 {3 4 if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_ESCAPE)5 { 6 return TRUE;7 }8 return CDialog::PreTranslateMessage(pMsg);9 }添加这个之后,按ESC不会退出了 阅读全文
posted @ 2013-08-03 17:15 GOD攀 阅读(271) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2013-08-03 13:05 GOD攀 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 下载RadASM,然后默认,一路回车就Ok,注意红框里面的地方,我们现在来创建一个win32运用程序代码如下: 1 ;用win32写一个可执行exe程序 2 .386 ; 指令集 3 .model flat, stdcall ; 工作模式 4 option casemap :none ; 格式,是否区分字符大小写 5 6 include windows.inc 7 include user32.inc 8 includelib user32.lib 9 include kernel32.inc 10 inc... 阅读全文
posted @ 2013-08-02 18:30 GOD攀 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 关于隐式调用,用到的是2个相关的函数导出函数:extern "C" int __declspec(dllexport) TianPan(int x,int y);导入函数:extern "C" _declspec(dllimport) TianPan(int x,int y);注意的是:隐式调用,不能用.def来导出函数,必须用上面的dllexport来导出写好dll之后,用dllexport调用之后,需要把003.dll文件和003.lib文件复制到调用工程目录然后我们的工程代码如下: 1 #include //输入输出流 2 using namesp 阅读全文
posted @ 2013-08-02 16:11 GOD攀 阅读(685) 评论(0) 推荐(0) 编辑
摘要: 第一种方法:头文件里面写 extern "C" int __declspec(dllexport)1 //003.h文件2 #ifndef LIB_H //如果没有定义这个LIB_H3 #define LIB_H //那么定义4 extern "C" int __declspec(dllexport) TianPan(int x,int y);//表示此条函数需要导出5 #endif /*LIB_H*/第二种方法:在工程目录里面添加一个.def文件,然后在def文件里面添加导出函数,然后把这个def文件add添加到工程 1 ;注释是用的";&q 阅读全文
posted @ 2013-08-02 15:40 GOD攀 阅读(480) 评论(0) 推荐(0) 编辑
摘要: 新建一个Win32Dynamic-LinkLibrary静态链接库文件003.h文件1 //003.h文件2 #ifndef LIB_H //如果没有定义这个LIB_H3 #define LIB_H //那么定义4 extern "C" int __declspec(dllexport) TianPan(int x,int y);5 #endif /*LIB_H*/003.cpp文件1 //003.cpp文件2 #include "003.h"//包含头文件3 #include //包含输入输出流文件4 using std::cout; //释放命名空间 阅读全文
posted @ 2013-08-02 15:13 GOD攀 阅读(170) 评论(0) 推荐(0) 编辑