摘要:
要点: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攀
阅读(277)
推荐(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攀
阅读(1613)
推荐(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攀
阅读(1539)
推荐(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攀
阅读(1039)
推荐(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攀
阅读(886)
推荐(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攀
阅读(2806)
推荐(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攀
阅读(580)
推荐(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攀
阅读(505)
推荐(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攀
阅读(423)
推荐(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攀
阅读(616)
推荐(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攀
阅读(447)
推荐(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攀
阅读(783)
推荐(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攀
阅读(373)
推荐(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攀
阅读(1078)
推荐(0)
摘要:
::SetWindowText(GetSafeHwnd(),"对话框新标题!");
阅读全文
posted @ 2013-08-06 14:54
GOD攀
阅读(191)
推荐(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攀
阅读(402)
推荐(0)
posted @ 2013-08-05 00:55
GOD攀
阅读(2)
推荐(0)
posted @ 2013-08-04 20:35
GOD攀
阅读(0)
推荐(0)
posted @ 2013-08-04 20:32
GOD攀
阅读(0)
推荐(0)
posted @ 2013-08-04 20:31
GOD攀
阅读(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攀
阅读(287)
推荐(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攀
阅读(214)
推荐(0)
摘要:
绝对路径是这样的:"E:\临时\田攀VC6.0教程\ListControl列表控件"相对路径是相对的:".\" —根目录。"..\" —代表上一层目录。"\" —当前根目录。"" —当前根目录。
阅读全文
posted @ 2013-08-04 20:12
GOD攀
阅读(125)
推荐(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攀
阅读(215)
推荐(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攀
阅读(165)
推荐(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攀
阅读(634)
推荐(0)
摘要:
ExitProcess(NULL);PostQuitMessage(0);
阅读全文
posted @ 2013-08-04 19:53
GOD攀
阅读(110)
推荐(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攀
阅读(5158)
推荐(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攀
阅读(238)
推荐(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攀
阅读(553)
推荐(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攀
阅读(219)
推荐(0)
posted @ 2013-08-04 00:31
GOD攀
阅读(1)
推荐(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攀
阅读(187)
推荐(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攀
阅读(175)
推荐(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攀
阅读(281)
推荐(0)
posted @ 2013-08-03 13:05
GOD攀
阅读(1)
推荐(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攀
阅读(194)
推荐(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攀
阅读(701)
推荐(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攀
阅读(546)
推荐(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攀
阅读(184)
推荐(0)