//myuc.h
#include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<fcntl.h> #include<string.h> #include<sys/types.h> #include<sys/mman.h> #include<sys/stat.h>
//myuc.h
#include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<fcntl.h> #include<string.h> #include<sys/types.h> #include<sys/mman.h> #include<sys/stat.h>
函数说明:
code1
#include<stdio.h> #include<unistd.h> int main() { void* empty=sbrk(0); void * p1=sbrk(4);//虚拟内存映最少射一个内存页4096字节 int *pi=p1; *(pi+2)=120;//给p3赋值 void* p2=sbrk(4); void* p3=sbrk(4); printf("p1=%p,p2=%p,p3=%p ",p1,p2,p3); sbrk(-8); sbrk(4093); printf("4097字节 "); sleep(15); sbrk(-1); printf("4096字节 "); sleep(15); sbrk(-4096); printf("0字节 "); sbrk(123); double * pd=sbrk(0);//取最后空间的首地址 brk(pd+1);//分配一个double空间 int result=brk(empty);//回收所有 //printf("p1=%p,p2=%p,p3=%p ",p1,p2,p3); //printf("p3=%d ",*(int*)p3); return 0; }
code2
code1
#include<stdio.h> #include<string.h> #include<stdlib.h> //extern char**envron; //第三个参数为环境表首地址 int main(int argc,char ** argv,char **env){ extern char** environ;//外部全局变量,不改动 char **p=environ; //输出所有环境变量 /* while(*p!=NULL){ printf("%s ",*p); (p)++; } */ char value[100]={}; p=environ; char *val=getenv("USER"); if(val) printf("USER=%s ",val); char *myenv=getenv("MYENV");//获取环境变量 if(!myenv) putenv("MYENV=env1");//设置环境变量 myenv=getenv("MYENV"); if(myenv!=NULL) printf("myenv=%s ",myenv); return 0; }
code2
uc:unix c 的简称
code1:
#include<stdio.h> int main() { #line 1550//指定下面一行行号为1550 int b=0; printf("%d",a); return 0; }
code2:
code1:
/* 模版成员模版 */ #include<iostream> using namespace std; template<typename V> class Value { public: Value(const V& v):m_v(v){} V m_v; }; template<typename K> class Key { public: Key(const K& k):m_k(k){} K m_k; template<typename V> class Value { public: Value(const V& v):m_v(v){} V m_v; }; }; int main() { Key<string> key("pi"); Key<string>::Value<double> value(3.1415); cout<<key.m_k<<" "<<value.m_v<<endl; return 0; }
code:
#include "stdafx.h" #include <windows.h> #include <windowsx.h> #include <SQL.H>//连接库:odbc32.lib odbccp32.lib #include <SQLEXT.H> #include <SQLTYPES.H> #include "resource.h" #include "MainDlg.h" #define LOGIN_TIMEOUT 30 #define MAXBUFLEN 255 #define CHECKDBSTMTERROR(hwnd,result,hstmt) if(SQL_ERROR==result){ShowDBStmtError(hwnd,hstmt);return;} /* */ BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog); HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand); HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose); } return FALSE; } BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam) { return TRUE; } void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify) { switch(id) { case IDC_OK: { Test(hwnd); } break; default: break; } } void Main_OnClose(HWND hwnd) { EndDialog(hwnd, 0); } void ShowDBError(HWND hwnd,SQLSMALLINT type,SQLHANDLE sqlHandle) { char pStatus[10], pMsg[101]; SQLSMALLINT SQLmsglen; char error[200] = {0}; SQLINTEGER SQLerr; long erg2 = SQLGetDiagRec(type, sqlHandle,1, (SQLCHAR *)pStatus,&SQLerr,(SQLCHAR *)pMsg,100,&SQLmsglen); wsprintf(error,"%s (%d) ",pMsg,(int)SQLerr); MessageBox(hwnd,error,TEXT("数据库执行错误"),MB_ICONERROR|MB_OK); } void ShowDBConnError(HWND hwnd,SQLHDBC hdbc) { ShowDBError(hwnd,SQL_HANDLE_DBC,hdbc); } void ShowDBStmtError(HWND hwnd,SQLHSTMT hstmt) { ShowDBError(hwnd,SQL_HANDLE_STMT,hstmt); } void Test(HWND hwnd) { SQLHENV henv = NULL; SQLHDBC hdbc = NULL; SQLHSTMT hstmt = NULL; SQLRETURN result; SQLCHAR ConnStrIn[MAXBUFLEN] = "DRIVER={MySQL ODBC 5.1 Driver};SERVER=127.0.0.1;UID=root;PWD=123456;DATABASE=test;CharSet=gbk;"; SQLCHAR ConnStrOut[MAXBUFLEN]; //分配环境句柄 result = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv); //设置管理环境属性 result = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0); //分配连接句柄 result = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc); //设置连接属性 result = SQLSetConnectAttr(hdbc, SQL_LOGIN_TIMEOUT, (void*)LOGIN_TIMEOUT, 0); //连接数据库 result = SQLDriverConnect(hdbc,NULL, ConnStrIn,SQL_NTS, ConnStrOut,MAXBUFLEN, (SQLSMALLINT *)0,SQL_DRIVER_NOPROMPT); if(SQL_ERROR==result) { ShowDBConnError(hwnd,hdbc); return; } //初始化语句句柄 result = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt); //result = SQLPrepare(hstmt,(SQLCHAR*)"select id,name,age from student",SQL_NTS);//如果是查询 result = SQLPrepare(hstmt,(SQLCHAR*)"insert into student(id,name,age) values(3,'wanger',30)",SQL_NTS); CHECKDBSTMTERROR(hwnd,result,hstmt); result =SQLExecute(hstmt); CHECKDBSTMTERROR(hwnd,result,hstmt); //显示查询数据开始 /* SQLINTEGER cbsatid=SQL_NTS; TCHAR info[50]={0}; while (SQLFetch(hstmt)!=SQL_NO_DATA_FOUND) { SQLCHAR name[20]; SQLINTEGER id; SQLSMALLINT age; SQLGetData(hstmt,1,SQL_C_LONG,&id,sizeof(SQLINTEGER),&cbsatid); SQLGetData(hstmt,2,SQL_C_CHAR,name,20,&cbsatid); SQLGetData(hstmt,3,SQL_C_TINYINT,&age,sizeof(SQLSMALLINT),&cbsatid); wsprintf(info,"%i,%s,%i",id,name,age); MessageBox(NULL,info,"提示",MB_OK); } */ //显示查询数据结束 SQLFreeStmt(hstmt,SQL_CLOSE); SQLDisconnect(hdbc); SQLFreeHandle(SQL_HANDLE_DBC,hdbc); SQLFreeHandle(SQL_HANDLE_ENV,henv); MessageBox(hwnd,TEXT("执行成功"),TEXT("标题"),MB_OK); }
code:
#include "stdafx.h" #include <windows.h> #include <windowsx.h> #include <WINSOCK2.H> #include "resource.h" #include "MainDlg.h" #define HIGHTIME 21968699 #define LOWTIME 4259332096 /* */ BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog); HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand); HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose); } return FALSE; } BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam) { return TRUE; } void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify) { switch(id) { case IDC_OK: { SocketTest(); } break; default: break; } } void Main_OnClose(HWND hwnd) { EndDialog(hwnd, 0); } void SocketTest() { ////在连接中加上 WSOCK32.LIB WSADATA wsaData; //初始化Socket库 WSAStartup(MAKEWORD(2,0),&wsaData); //创建 SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); SOCKADDR_IN sa; sa.sin_family=AF_INET; //设置连接服务器端的端口 sa.sin_port = htons(IPPORT_TIMESERVER);//端口号 //218.107.63.213是ping smtp.163.com出来的 sa.sin_addr.S_un.S_addr = inet_addr("218.107.63.213");//www.time.ac.cn-210.72.145.8 if(connect(sock,(SOCKADDR *)&sa,sizeof(sa))==SOCKET_ERROR) { ShowError(); return; } /* //接收连接到的消息1 TCHAR buff[256]; ZeroMemory(buff,sizeof(buff)/sizeof(TCHAR)); recv(sock,buff,sizeof(buff)/sizeof(TCHAR),0); MessageBox(NULL,buff,"返回消息",MB_OK); //发消息1 TCHAR msg[]="QUIT "; send(sock,msg,sizeof(msg)/sizeof(TCHAR),0); ZeroMemory(buff,sizeof(buff)/sizeof(TCHAR)); recv(sock,buff,sizeof(buff)/sizeof(TCHAR),0); MessageBox(NULL,buff,"返回消息",MB_OK); */ //接收连接到的消息2 unsigned long ulTime=0; recv(sock,(char*)&ulTime,sizeof(unsigned long),0); ulTime=ntohl(ulTime);//把网络字节序转化为本机字节序 TCHAR buff1[256]={0}; wsprintf(buff1,"%i",ulTime); MessageBox(NULL,buff1,"返回消息",MB_OK);//获取到的时间不对,www.time.ac.cn有问题,直接放到 http://tool.chinaz.com/Tools/unixtime.aspx 转换都不对。 ////把unix时间转化为系统时间 SYSTEMTIME st; UINT64 uiCurtime,uiBasetime,uiResult; uiBasetime=((UINT64)HIGHTIME<<32)+LOWTIME; uiCurtime=(UINT64)ulTime*(UINT64)10000000; uiResult=uiBasetime+uiCurtime; uiResult=uiBasetime; FileTimeToSystemTime((LPFILETIME)&uiResult,&st); TCHAR buff[256]={0}; wsprintf(buff,"%d年%d月%d日 %d:%d:%d",st.wYear,st.wMonth,st.wDay,st.wHour+8,st.wMinute,st.wSecond); MessageBox(NULL,buff,"返回消息",MB_OK); //设置系统时间 //SetSystemTime(&st); closesocket(sock); WSACleanup(); } void ShowError() { TCHAR* lpMsgBuf; FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER| //自动分配消息缓冲区 FORMAT_MESSAGE_FROM_SYSTEM, //从系统获取信息 NULL,GetLastError(), //获取错误信息标识 MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),//使用系统缺省语言 (LPTSTR)&lpMsgBuf, //消息缓冲区 0, NULL); MessageBox(NULL,lpMsgBuf,"",MB_ICONERROR); }
code:
#include <iostream> #include <string> #include<fstream> using namespace std; //追加方式写文件 void writefile() { fstream f("try.txt",ios::out|ios::app); if(!f){ cout<<"File open error! "; return; } f<<123<<" "<<456<<" "<<"my name is aa "; f.close(); } //读取文件 void readfile() { fstream f("try.txt",ios::in); if(!f){ cout<<"File open error! "; return; } int a,b; char s[20]; while(1) { a=0;b=0; s[0]=0; f>>a>>b; f.getline(s,20); if(a==0) break;//循环读取数据,没有数据时退出 cout<<a<<" "<<b<<" "<<s<<endl; } f.close(); } ///复制文件二进制数据 void copybinary() { ifstream fin("try1.txt",ios::in|ios::binary); if(!fin){ cout<<"File open error! "; return; } ofstream fout("try2.txt",ios::out|ios::binary); char c[1024]; int count=0; while(!fin.eof()) { fin.read(c,1024); count=fin.gcount(); for(int i=0;i<count;i++) { c[i]=255-c[i];//字节取反,可以实现程序加密,让别人打不开,自己知道哪个字节少了多少,再还原 } fout.write(c,count); } fin.close(); fout.close(); cout<<"Copy over! "; } int main() { /*writefile(); readfile();*/ copybinary(); return 0; }
终极解决方案:
VS2010在经历一些更新后,建立Win32 Console Project时会出“error LNK1123” 错误,
解决方案为 将 项目|项目属性|配置属性|清单工具|输入和输出|嵌入清单 “是”改为“否”即可,但是每新建一个项目都要这样设置一次,很麻烦
在建立VS2010 Win32 Project项目时,按照上面解决方案依然发生了“error LNK1123”错误,经过上网查资料,解决方案为:
Powered By Z-BlogPHP 1.7.3
Copyright 2024-2027 pukuimin Rights Reserved.
粤ICP备17100155号